gpt4 book ai didi

javascript/underscore : find objects by property in an array, 并将它们组合起来

转载 作者:行者123 更新时间:2023-11-29 19:34:43 25 4
gpt4 key购买 nike

如果我有一个看起来像这样的对象数组:

[{id:1,product:'widget',quantity:10}, {id:2,product:'foobar',quantity:5}, {id:3,product:'widget',quantity:5}]

在 javascript 中是否有一种优雅的方法来查找具有相同名称的对象,并将数量组合到第一个对象中,然后删除其余的?

结果数组看起来像这样:

[{id:1,product:'widget',quantity:15}, {id:2,product:'foobar',quantity:5}]

现在我正在创建一个新数组,遍历现有数组,查找具有特定名称的所有内容,进行求和,然后将其转储到新数组中。这一切似乎过于复杂。我正在使用下划线来处理大量繁重的工作。

谢谢!

最佳答案

你可以 groupBy产品然后map生成的组以获得所需的结构。 Reduce用于对数量求和:

    var groups = _.chain(data)
.groupBy('product')
.map( function(group){
return {
id: group[0].id,
product: group[0].product,
quantity: _.reduce(group, function(memo, value){ return memo + value.quantity; }, 0 )
}
})
.value();

关于javascript/underscore : find objects by property in an array, 并将它们组合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25691622/

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