gpt4 book ai didi

javascript - 使用 lodash 基于不同的值求和属性

转载 作者:行者123 更新时间:2023-11-30 15:45:51 26 4
gpt4 key购买 nike

如何制作我的数据:

[
{
"a": {
"b": 1,
"c": "M"
},
"color": "white"
},
{
"a": {
"b": 10,
"c": "M"
},
"color": "white"
}
]

进入这个:

[
{
"a": {
"b": 11,
"c": "M"
},
"color": "white"
}
]

我希望 a.ccolor 字段是唯一的,而 a.b 可以合并。

我试过使用 _.uniq 但它不起作用。我正在使用 lodash 3.10.1。

最佳答案

不是微不足道的,但它是这样的:

// assuming the data is in `data`:
_.map(_.groupBy(data, x => [x.a.c, x.color]),
x => _.tap(_.cloneDeep(x[0]), y => y.a.b = _.sum(x, z => z.a.b)))

首先,我根据 .a.c.color 的复合值对对象进行分组;在每个组中,我将克隆第一个对象作为结果,然后用组中所有 .a.b 值的总和覆盖它的 .a.b 值。

编辑:包装语法:

_(data).groupBy(x => [x.a.c, x.color]).map(x =>
_.tap(_.cloneDeep(x[0]), y => y.a.b = _.sum(x, z => z.a.b))
).value()

关于javascript - 使用 lodash 基于不同的值求和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40077418/

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