我想计算符合某些条件的JSON项目数组中的项目数。 我的数组看起来像这样:
array = [{
name: 'Bob',
age: 24
},
....,
{
name: 'Mary',
age: 23
}]
我试图让表达式像我的数据库请求一样简单优雅,而不是遍历整个数组:
db.myCollection.find({ age: 23 }).count()
有最佳做法吗?我正在考虑使用下划线库,但我无法找到我要找的东西。
非常感谢你的帮助。
答案 0 :(得分:15)
好吧,你可以在没有任何第三方库的情况下做到这一点,也可以不循环:
array.filter(function(value) { return value.age === 23 }).length;
使用ES6,它甚至变得更加简洁
array.filter(value => value.age === 23).length;
答案 1 :(得分:1)
正如我在操作中提到的,您似乎正在寻找_.size
_.chain(json)
.find({age: 23})
.size()
.value();