72 lines
1.1 KiB
Markdown
72 lines
1.1 KiB
Markdown
|
---
|
||
|
title: Iterate Through the Keys of an Object with a for...in Statement
|
||
|
---
|
||
|
## Iterate Through the Keys of an Object with a for...in Statement
|
||
|
|
||
|
Method:
|
||
|
- 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.
|
||
|
|
||
|
### Example 1:
|
||
|
|
||
|
```javascript
|
||
|
|
||
|
for (let user in obj) {
|
||
|
if(obj.user.online === true) {
|
||
|
//code
|
||
|
}
|
||
|
}
|
||
|
|
||
|
```
|
||
|
|
||
|
- Example 2 demonstrates how using `[square-bracket]` notation the code will be executed.
|
||
|
|
||
|
### Example 2:
|
||
|
|
||
|
```javascript
|
||
|
|
||
|
for (let user in obj) {
|
||
|
if(obj[user]online === true) {
|
||
|
//code
|
||
|
}
|
||
|
}
|
||
|
|
||
|
```
|
||
|
|
||
|
### Solution:
|
||
|
```javascript
|
||
|
|
||
|
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));
|
||
|
|
||
|
```
|