gpt4 book ai didi

javascript - 带子数组的组数组

转载 作者:行者123 更新时间:2023-12-03 11:54:09 26 4
gpt4 key购买 nike

我正在尝试找到最简单的方法来获取具有类似信息的数组并创建带有子数组的数组。新创建的父数组还应该对子数组中找到的值求和。这相当于使用 sum/group by 的 SQL 语句。

这是原始数组

[
{
'userId':1,
'userName':'bob',
'category':'shoes',
'count':2
},
{
'userId':1,
'userName':'bob',
'category':'rocks',
'count':4
},
{
'userId':1,
'userName':'bob',
'category':'bags',
'count':3
},
{
'userId':2,
'userName':'sue',
'category':'shoes',
'count':1
},
{
'userId':2,
'userName':'sue',
'category':'rocks',
'count':7
},
{
'userId':2,
'userName':'sue',
'category':'bags',
'count':4
},
]

这就是我希望新创建的数组的样子:

[
{
'userId':1,
'userName':'bob',
'purchases': [
{'category':'shoes','count':'2'},
{'category':'rocks','count':'4'},
{'category':'bags','count':'3'}
],
'totalCount' : 9
},
{
'userId':2,
'userName':'sue',
'purchases': [
{'category':'shoes','count':'1'},
{'category':'rocks','count':'7'},
{'category':'bags','count':'4'}
],
'totalCount' : 12
},
]

最佳答案

第一groupBy userId 然后 map组以获得所需的结构:

    var groups = _.groupBy(list, 'userId');

var result = _.map(groups, function(user){
return {
userId: user[0].userId,
userName: user[0].userName,
purchases: _.map(user, function(purchase){
return {
category: purchase.category,
count: purchase.count
}
}),
totalCount: _.reduce(user, function(memo, purchase){
return memo + purchase.count;
}, 0)
}
});

关于javascript - 带子数组的组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25676026/

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