问题描述
我有一个具有3个属性的对象,每个对象的属性都有一个对象作为其值。我正在尝试console.log每个对象的联机属性,但得到undefined
。我也尝试计算设置为true的在线属性的数量,但不返回任何数字。为什么我未定义,以及如何将在线属性设置为true?
function countOnline(usersObj) {
let count = 0;
for (let user in usersObj) {
console.log(user);
console.log(user.online);
}
return count;
}
const users = {
Alan: {
online: false
},Jeff: {
online: true
},Sarah: {
online: false
}
}
countOnline(users);
解决方法
user
是键,而不是值。此外,每次在线属性为true时,您都需要增加count
。
for (let user in usersObj) {
console.log(usersObj[user]);
console.log(userObjs[user].online);
if(userObjs[user].online)
++count;
}
实时示例:
function countOnline(usersObj) {
let count = 0;
for (let user in usersObj) {
console.log(usersObj[user]);
console.log(usersObj[user].online);
if(usersObj[user].online) ++count;
}
return count;
}
const users = {
Alan: {
online: false
},Jeff: {
online: true
},Sarah: {
online: false
}
}
console.log(countOnline(users));