【问题标题】:Counting true booleans in an objects property在对象属性中计算真正的布尔值
【发布时间】:2021-07-18 04:01:15
【问题描述】:

您好,我需要一个函数来计算不同对象“usuarios”的“online:true”属性,有人可以帮忙吗???

    //     toni: {
    //         edad: 33,
    //         online: true
    //     },
    //     emi: {
    //         edad: 25,
    //         online: true
    //     },
    //     fran: {
    //         edad: 25,
    //         online: false
    //     },
    //     agus: {
    //         edad: 24,
    //         online: false
    //     }```

【问题讨论】:

标签: javascript boolean


【解决方案1】:

使用Object.values 收集所有值并使用reduce 计算所有online:true

const obj = {
  toni: {
    edad: 33,
    online: true,
  },
  emi: {
    edad: 25,
    online: true,
  },
  fran: {
    edad: 25,
    online: false,
  },
  agus: {
    edad: 24,
    online: false,
  },
};

const result = Object.values(obj).reduce((acc, curr) => {
  if (curr.online) ++acc;
  // or
  // if (curr.online === true) ++acc;
  return acc;
}, 0);
console.log(result);

【讨论】:

  • 您也可以使用Object.values(obj).reduce((count, user) => count + (user.online ? 1 : 0), 0) 进行简化。由于所有嵌套对象都有online 键并且是布尔值,因此您也可以将其写为Object.values(obj).reduce((count, user) => count + Number(user.online), 0)
  • @ArunKumarMohan 感谢您的建议,但我写了它是为了让 OP 可以更好地理解它,而不是让它简洁并难以理解
  • 正如你提到的,这是一个建议。随意忽略:)
猜你喜欢
  • 2021-11-30
  • 2012-09-27
  • 2020-06-13
  • 1970-01-01
  • 2012-04-30
  • 2016-04-08
  • 1970-01-01
  • 2013-05-01
  • 1970-01-01
相关资源
最近更新 更多