freeCodeCamp Challenge Guide: Iterate Through the Keys of an Object with a for...in Statement

Iterate Through the Keys of an Object with a for…in Statement


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));
25 Likes