使用条件计算数组中对象的数量

时间:2018-03-12 10:42:30

标签: javascript arrays object count

我有一组看起来与此类似的对象:

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

2 个答案:

答案 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++;