【问题标题】:Getting undefined for object properties and unable to get count对象属性未定义且无法获取计数
【发布时间】:2020-08-15 12:58:02
【问题描述】:

我有一个具有 3 个属性的对象,每个对象的属性都有一个对象作为其值。我正在尝试 console.log 每个对象的在线属性,但我得到undefined。我也尝试计算设置为 true 的在线属性的数量,但没有返回任何数字。为什么我会得到未定义以及如何计算设置为 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);

【问题讨论】:

  • 您的函数返回 0,因为您忘记在 for...in 循环中增加您的 count 变量
  • user 是属性名称而不是它包含的对象

标签: javascript javascript-objects


【解决方案1】:

user 是键,而不是值。此外,每次在线属性为 true 时,您都需要增加 count

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

【讨论】:

  • 谢谢。就是这样。
  • @larry8989 没问题。
猜你喜欢
  • 1970-01-01
  • 2021-11-02
  • 2021-04-30
  • 2021-09-23
  • 2012-06-11
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 2020-10-23
相关资源
最近更新 更多