In a JSON object we have key and value pairs.
An example would be something like this
var object = {
key1 : {
name : 'xxxxxx',
value : '100.0'
},
key2 : {
name : 'yyyyyyy',
value : '200.0'
},
key3 : {
name : 'zzzzzz',
value : '500.0'
},
Exercise
We have defined a function named 'countOnline(userObj)' , using a for ..in statement within this function loop through the users object passed into the function and return the number of users whose online property is set to 'True' . Example of users object that will be passed to countOnline is shown below
{
Alan:{
online:false
},
Jeff:{
online:true
},
Sarah:{
online:false
}
}
Attempts
//Attempt 1
function countOnline(userObj){
let count;
for (let user in users) {
if (user.online==true)
count ++
}
}
//Attempt 2
function countOnline(usersObj) {
// Only change code below this line
let count=0;
for (let user in usersObj){
if(usersObj[user].online==true){
count++
}
}
return count
// Only change code above this line
}
console.log(countOnline(users));
Correct answer?? Attempt 2
1.Attempt 1 did not work because when we do user.online, user will only have the string (ie.Alan, Sarah etc)
2.Attempt 2 worked because we correctly used the syntax to get the online property of each user inside usersObj
Try this out in freecodecamp https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-data-structures/iterate-through-the-keys-of-an-object-with-a-for---in-statement
Top comments (0)