I have the solution here,
But I do not understand why I have to write [user] into the if statement. It’s my understanding that the square bracket notation is used to take you through the keys of an object, and here is being used to get to the ‘true /false value’ part of the object so it can be evaluated. I am confused because no part of the object is called ‘user’, so why am I having to write it in square brackets?
Your code so far
const users = {
Alan: {
online: false
},
Jeff: {
online: true
},
Sarah: {
online: false
}
}
function countOnline(usersObj) {
// Only change code below this line
let result=0;
for (let user in usersObj) {
if (usersObj[user].online===true) {
result++;
}
}
return result;
// Only 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/110.0.0.0 Safari/537.36 Edg/110.0.1587.63
Challenge: Basic Data Structures - Iterate Through the Keys of an Object with a for…in Statement
Link to the challenge: