如何使用reduce(下划线?)对对象数组中的某些值求和

时间:2015-08-13 19:19:29

标签: mapreduce underscore.js

我有以下JSON结构。

var fooArray =
    [{ name: 'firstValue',
     price1: 20,
     price2: 11
    },
    {  name: 'secondValue',
     price1: 54,
     price2: 13
    },
    {  name: 'thirdValue',
     price1: 3,
     price2: 6
    }]

如何总结对象数组中的值? (除了使用for循环)

{price1: 77,
 price2: 28}

2 个答案:

答案 0 :(得分:2)

这类似于@ MatthewMcveigh的回答,但结果对象没有虚假的name属性:

_.reduce(fooArray, function (accum, x) {
    return { 
        price1: x.price1 + accum.price1, 
        price2: x.price2 + accum.price2
    };
}, {price1: 0, price2: 0});

答案 1 :(得分:0)

您可以使用对属性求和的函数来减少数组:

_.reduce(fooArray, function (accum, x) {
    return { 
        price1: x.price1 + accum.price1, 
        price2: x.price2 + accum.price2
    };
});