Становится неопределенным для свойств объекта и не удается получить количество

#javascript #javascript-objects

#javascript #javascript-объекты

Вопрос:

У меня есть объект с 3 свойствами, и свойство каждого объекта имеет объект в качестве своего значения. Я пытаюсь утешить.регистрируйте онлайн-свойство каждого объекта, но я получаю undefined . Я также пытаюсь подсчитать количество сетевых свойств, для которых установлено значение true, но число не возвращается. Почему я получаю undefined и как мне посчитать, что для сетевых свойств установлено значение true?

 function countOnline(usersObj) {

  let count = 0;
  for (let user in usersObj) {
    console.log(user);
    console.log(user.online);
  }
  return count;

}
const users = {
  Alan: {
    online: false
  },
  Jeff: {
    online: true
  },
  Sarah: {
    online: false
  }
}

countOnline(users);
  

Комментарии:

1. Ваша функция возвращает, 0 потому что вы забыли увеличить свою count переменную в for...in цикле

2. user является ли имя свойства не объектом, который оно содержит

Ответ №1:

user это ключ, а не значение. Кроме того, вам нужно увеличивать count каждый раз, когда свойство online имеет значение true.

 for (let user in usersObj) {
    console.log(usersObj[user]);
    console.log(userObjs[user].online);
    if(userObjs[user].online)
          count;
}
  

Живой пример:

 function countOnline(usersObj) {
  let count = 0;
  for (let user in usersObj) {
    console.log(usersObj[user]);
    console.log(usersObj[user].online);
    if(usersObj[user].online)   count;
  }
  return count;
}
const users = {
  Alan: {
    online: false
  },
  Jeff: {
    online: true
  },
  Sarah: {
    online: false
  }
}
console.log(countOnline(users));  

Комментарии:

1. Спасибо. это было все.

2. @larry8989 Нет проблем.