我有一个这样的集合:
{ "items": [
{
"id": "123",
"meta": {
"activity": 2
}
},
{
"id": "13423",
"meta": {
"activity": 4
}
}
]}
鉴于收集,我如何获得收集的总活动?在上面的例子中,结果将是6。
我使用骨干和下划线。
由于
答案 0 :(得分:1)
在下划线中,您可以使用reduce函数,该函数将使用给定的迭代器函数将值列表减少为单个值。
var myCollection = { "items": [
{
"id": "123",
"meta": {
"activity": 2
}
},
{
"id": "13423",
"meta": {
"activity": 4
}
}
]};
var totalActivity = _.reduce(myCollection.items, function(memo, item){ return memo + item.meta.activity; }, 0);
答案 1 :(得分:1)
您正在使用underscore.js,因此您可以使用一些好的工具。请看_.map()开始。
var flatArray = _.map(collection.items, function(x){return x.meta.activity;});
// should return: [2,4]
然后您可以使用_.reduce()将其转换为单个值。
var total = _.reduce(flatArray, function(memo, num) {return memo + num;}, 0);
// should return: 6
在underscore.js中有很多其他很棒的工具,值得一看,看看是否还有其他任何东西对你有效。