我有一组看起来与此类似的对象:
const myArray = [
{
message: "foo",
seen: false
},
{
message: "bar",
seen: false
},
{
message: "foobar"
seen: true
}
];
我想计算数组中seen
属性设置为false
的对象数。
我知道如何使用经典的For循环来实现它,但我想知道是否有更有效的方法呢?
谢谢你,非常感谢。
编辑:这是我的代码与for循环
var count = 0;
for (var x in myArray) {
if(!x.seen) {
count++;
}
}
和
var count = 0;
myArray.forEach(e => {
if(!e.seen) {
count++;
}
})
答案 0 :(得分:2)
您可以使用filter
。
const myArray = [
{
message: "foo",
seen: false,
},
{
message: "bar",
seen: false,
},
{
message: "foobar",
seen: true,
},
];
const result = myArray.filter(x => !x.seen).length;
console.log(result);

答案 1 :(得分:0)
答案就在这里。 https://stackoverflow.com/a/49105977/6192621
最快的方法是反向简单循环。
for(i = myArray.length - 1; i > 0; i--) if(!myArray[i].seen) count++;