Я бы reduce
Object.values
объекта, увеличивая накопитель, когда online
истинно:
let users = {
Alan: {
age: 27,
online: false
},
Jeff: {
age: 32,
online: true
},
Ryan: {
age: 19,
online: true
}
};
const onlineCount = Object.values(users).reduce((a, { online }) => a + online, 0);
console.log(onlineCount);
Чтобы исправить существующий код, измените тест на obj[user].online === true
(или просто obj[user].online
):
let users = {
Alan: {
age: 27,
online: false
},
Jeff: {
age: 32,
online: true
},
Ryan: {
age: 19,
online: true
}
};
function countOnline(obj) {
let count = 0;
for (let user in obj) {
if (obj[user].online === true) {
count++;
}
}
return count;
}
console.log(countOnline(users));