【发布时间】:2016-10-02 16:14:42
【问题描述】:
我有以下对象:
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 正在解决我的确切问题,但将对象转换为上述所需的对象数组似乎需要做很多工作。
干杯。
【问题讨论】:
标签: arrays json underscore.js lodash