I’m having some trouble I guess understanding the for…in loop construct? I’m not sure why I can’t access the user’s online property with this code:
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
let counter = 0;
for(let user in obj){
if(user.online == true){
counter += 1;
}
}
// change code above this line
}
console.log(countOnline(users));
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
.
Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-data-structures/-iterate-through-the-keys-of-an-object-with-a-for---in-statement
Finally figured it out. I think I need to further research bracket notation when accessing object properties. Can anyone expound on this topic helpfully? This was my solution:
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
let counter = 0;
let user = '';
for(user in obj){
if(obj[user].online == true){
counter += 1;
}
}
return counter;
}
// change code above this line
console.log(countOnline(users));