0

I have written a function to iterate through an object and is not working properly someone please help me and tell me where am I making a mistake in my function here is What I tried:

//Function Checking online User
let countOnline = (usersObj) => {
  let onlineUsers = 0;
  for (let user in usersObj) {
    if (user.online === true) {
      onlineUsers += 1;
    }

  }
  return onlineUsers;
}
//Sample Object
let obj1 = {
  Alan: {
    online: false
  },
  Jeff: {
    online: true
  },
  Sarah: {
    online: false
  }
}
console.log(countOnline(obj1));
Hasnain Ali
  • 133
  • 5

1 Answers1

1

You should use usersObj[user] to access the online variable of the user:

//Function Checking online User
let countOnline = (usersObj) => {
  let onlineUsers = 0;

  for (let user in usersObj) {

   console.log(usersObj[user].online);

    if (usersObj[user].online) {
      onlineUsers += 1;
    }       

  }
  return onlineUsers;
}

//Sample Object
let obj1 = {
  Alan: {
    online: false
  },
  Jeff: {
    online: true
  },
  Sarah: {
    online: false
  }
}
console.log(countOnline(obj1));
Luis Paulo Pinto
  • 5,578
  • 4
  • 21
  • 35