gpt4 book ai didi

javascript - 如何读取嵌套对象中的属性并返回满足条件的项目数?

转载 作者:行者123 更新时间:2023-12-02 23:12:25 26 4
gpt4 key购买 nike

我有下面的代码,它对我来说看起来不错,但一直返回 0。我需要迭代用户对象中的命名用户并返回在线属性值为 true 的用户总数。

我尝试将 newUser 变量更改为数组,并将用户推送到该数组中,其中 online 的值为 true,然后返回数组的长度,它也返回 0。


let users = {
Alan: {
age: 27,
online: false
},
Jeff: {
age: 32,
online: true
},
Sarah: {
age: 48,
online: false
},
Ryan: {
age: 19,
online: true
}
};

function countOnline(obj) {
// change code below this line
const newUser = 0;

for (let user in obj) {
if (user.online === true) {
} else {
newUser++;
}
}

return newUser;
// change code above this line
}

console.log(countOnline(users));

我期望 for-in 循环遍历用户对象中的用户,如果有一个值为 true 的 online 属性,则每次将 newUser 变量增加 1,然后返回 newUser 变量值为 2。但它一直返回 0。

最佳答案

您可以使用 Array.reduce 将用户数组减少到一定数量

const count = Object.keys(users).reduce((accum, username) => users[username].online ? accum + 1 : accum, 0)

或者Array.filter获取过滤后的在线用户数组的长度

const count = Object.keys(users).filter(username => users[username].online).length;

o(n) 解决方案,无需将对象键转换为数组

let count = 0
for (const username in users) {
count = users[username].online ? count + 1 : count
}
return count

关于javascript - 如何读取嵌套对象中的属性并返回满足条件的项目数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57287264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com