你好,我有以下对象:
items = {
1: true,
2: false,
3: true,
4: true
},
我该如何计算真实数目?因此,在这种情况下,一个简单的函数将返回数字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)
);
假设对象仅包含true
和false
,否则必须显式测试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