计算一个对象的真实数。 javascript

时间:2018-10-17 03:17:17

标签: javascript

你好,我有以下对象:

  items = {
    1: true,
    2: false,
    3: true,
    4: true
  },

我该如何计算真实数目?因此,在这种情况下,一个简单的函数将返回数字3。

谢谢!

3 个答案:

答案 0 :(得分:3)

您可以reduce对象的values,将true强制为1并将它们添加到累加器:

const items = {
  1: true,
  2: false,
  3: true,
  4: true
};

console.log(
  Object.values(items).reduce((a, item) => a + item, 0)
);

假设对象仅包含truefalse,否则必须显式测试true

const items = {
  1: true,
  2: false,
  3: 'foobar',
  4: true
};

console.log(
  Object.values(items).reduce((a, item) => a + (item === true ? 1 : 0), 0)
);

答案 1 :(得分:1)

var items = {
    1: true,
    2: false,
    3: true,
    4: true
};

function countTrue4obj(obj) {
    var count = 0;
    for (var p in obj) {
        if (obj.hasOwnProperty(p) && obj[p] === true) {
            count++
        }
    }
    return count;
}

console.log(countTrue4obj(items));

答案 2 :(得分:1)

const items = {
  a: false,
  b: true,
  c: false,
  d: false,
  e: false
};

const count = Object.values(items).filter(item => item === true).length;

console.log(count);//1