Tell us what’s happening:
**Can anyone tell me whats going on here in code ** Please explain what is in the for loop and rhe if sttement
Thank you!!!
Your code so far
freeCodeCamp Challenge Guide: Iterate Through the Keys of an Object with a for…in Statement
Guide
camperbot
1
Oct '19
Iterate Through the Keys of an Object with a for…in Statement 192
Problem Explanation
Note: dot-notation will cause errors in this challenge.
[square-bracket] notation must be used to call a variable property name.
The following code will not work.
Hints
Hint 1:
for (let user in obj) {
if (obj.user.online === true) {
//code
}
}
Hint 2
Example 2 demonstrates how using [square-bracket] notation the code will be executed.
for (let user in obj) {
if (obj[user].online === true) {
//code
}
}
Solutions
Solution 1 (Click to Show/Hide)
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 result = 0;
for (let user in obj) {
if (obj[user].online === true) {
result++;
}
}
return result;
// change code above this line
}
console.log(countOnline(users));
Your browser information:
User Agent is: Mozilla/5.0 (Linux; Android 8.1.0; CPH1909) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Mobile Safari/537.36.
Challenge: Iterate Through the Keys of an Object with a for…in Statement
First we need to understand how our object is composed.
You have this object called “users” right ? you know that inside “users” we have data
“user” meaning user will be “Alan”, “Jeff”, “Sarah” those will call them
for now user the names.
Each user have a nested object with again a key value pair of “Online”
with a key pair of value either true (1) or false (0).
In order to get true or false we need to set our create a flag variable a
true or false. This can be var result = 0; to start our flag.
Now lets loop or iterate the “users object”.
let user be the current property names the names because we want to iterate or loop all of them. so we do for in loop. (all of the properties(user) of the object(users))
for (let user in users) {
}
Once we have this. we can do an if else statement to check its key value pair if either
true (1) or false (0).
let result = 0;
we access the “users” object and access all of its current properties[user] and access it’s key values online and set it to true to find out the key value if its true or false.
users[user].online === true
and we add 1 to it meaning its true; result++;
else will be 0 as default in the return. return result;
Here is a link for in loop take a look at it will help you understand better the types of loops and Looping through objects from ES5 and ES6 syntax loops.