gpt4 book ai didi

arrays - 将键上的对象数组和总和值减少到数组中

转载 作者:行者123 更新时间:2023-12-02 05:04:18 25 4
gpt4 key购买 nike

我有以下对象:

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 map :

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正在解决我的确切问题,但似乎只需将对象转换为上面概述的所需对象数组就需要相当多的工作。

干杯。

最佳答案

对使用 groupBy 的已接受答案的扭曲而不是用reduce来进行初始分组:

var result = _.chain(data)
.groupBy('name')
.map((group, key) => ({ key, val : _.sumBy(group, 'val') }))
.value();

关于arrays - 将键上的对象数组和总和值减少到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37600093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com