簡體   English   中英

從傳遞JSON的函數返回對象

[英]Return object from function to which JSON is passed

親愛的,

我有一個函數,我向其輸入JSON數據

function getTotals(users){

users = data;


allUsers = users.length;
active = 0;
women = 0;
men = 0;
lastActive = 0;

for (elm in users){
    if (users[elm].active){
        active++;

        if (users[elm].gender == "Female"){
            women++;
        } else if (users[elm].gender == "Male") {
            men++;
        } else if (users[elm].last_login){
            var lastLogin = new Date (users[elm].last_login);
            var lastMonths = lastLogin.getMonth()-6;
            var lastYears = lastLogin.getFullYear();
            //console.log(lastYears);

            if (lastMonths <6 && lastMonths > -6 && lastYears >= lastLogin.getFullYear()-1){
                lastActive++;
            }
        }

    }
}
return {allUsers : allUsers, active : active, women : women, men : men, lastActive : lastActive};}

但是當我執行以下操作時,我無法顯示這些值:

var listOfUsers = document.createElement('p');
listOfUsers.textContent = "Liczba wszystkich użytkowników: "+allUsers;
document.querySelector("#row1 > div").appendChild(listOfUsers);

var listOfActive = document.createElement('p');
listOfActive.textContent =  "Liczba aktywnych użytkowników: "+active;
document.querySelector("#row2 > div").appendChild(listOfActive);


var listOfWomen = document.createElement('p');
listOfWomen.textContent = "Liczba aktywnych kobiet: "+women;
document.querySelector("#row3 > div").appendChild(listOfWomen);

var listOfMen = document.createElement('p');
listOfMen.textContent = "Liczba aktywnych mężczyzn: "+men;
document.querySelector("#row4 > div").appendChild(listOfMen);

var listOfLastActv = document.createElement('p');
listOfLastActv.textContent = "Liczba aktywnych (ost 6 mcy): "+lastActive;
document.querySelector("#row5 > div").appendChild(listOfLastActv);

當我執行以下操作(在其他問題中找到此處)時:

var getTotalUsers = new getTotal();
var allUsers = getTotalUsers.allUsers;
var active = getTotalUsers.active;
var women = getTotalUsers.women;
var men = getTotalUsers.men;
var lastActive = getTotalUsers.lastActive;

結果我不確定。 我不知道如何解決此問題,因為在js的下一部分中,我將需要顯示活動用戶列表。

new Promise()異步返回結果。 您可以鏈接.then()或使用async/await獲得預期的結果

 function httpGet() { return new Promise(function(resolve) { setTimeout(function() { resolve([{a:1}, {b:2}, {c:3}]) }, Math.floor(Math.random() * 1200)) }) } async function getTotals() { const users = await httpGet(); console.log(users); } getTotals(); 

 function httpGet() { return new Promise(function(resolve) { setTimeout(function() { resolve([{a:1}, {b:2}, {c:3}]) }, Math.floor(Math.random() * 1200)) }) } function getTotals() { const data = httpGet(); data.then(function(users) { console.log(users) }) .catch(function(err) { console.log(err) }) } getTotals(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM