我有以下对象:
data = [
{ name: 'foo', type: 'fizz', val: 9 },
{ name: 'foo', type: 'buzz', val: 3 },
{ name: 'bar', type: 'fizz', val: 4 },
{ name: 'bar', type: 'buzz', val: 7 },
];
并使用 lodash 地图:
result = _.map(data, function item, idx){
return {
key: item[key],
values: item.value,
}
}
结果是:
[
{ key: foo, val: 9 },
{ key: foo, val: 3 },
{ key: bar, val: 4 },
{ key: bar, val: 7 },
]
但现在我正在尝试返回:
[
{ key: 'foo', val: 12 },
{ key: 'bar', val: 11 },
]
我尝试使用reduce,它似乎只输出到单个对象,然后我可以将其转换回数组,但我觉得必须有一种优雅的方法来使用lodash从我的源数据直接转到我想要的结果,而无需所有的中间步骤。
我想this https://stackoverflow.com/questions/32659248/reduce-an-array-of-objects-and-sum-property-for-each-distinct-object正在解决我的确切问题,但似乎只需将对象转换为上面概述的所需对象数组就需要相当多的工作。
Cheers.