gpt4 book ai didi

javascript - 使用 JavaScript 对象数组中的键值之和进行分组

转载 作者:行者123 更新时间:2023-11-28 14:15:41 25 4
gpt4 key购买 nike

我有一个如下所示的对象数组

var data = [{monthName: "Jun", name:'web', number: 1, month: 6}, 
{monthName: "Jul", name:'web', number: 2, month: 7},
{monthName: "Aug", name:'web', number: 2, month: 8},
{monthName: "Jun", name:'sales', number: 12, month: 6},
{monthName: "Jul", name:'sales', number: 2, month: 7}]

我想根据键“名称”对数据进行分组,然后需要将数字作为数组获取。

示例输出如下

datasets: [{
name: 'web',
number: [1, 2, 2],
},{
name: 'sales',
number: [12, 2]
}]

我不确定如何对数据进行分组,然后将键值作为数组获取。

我使用下面的代码对数据进行了分组

result = data.reduce(function (r, a) {
r[a.name] = r[a.name] || [];
r[a.name].push(a);
return r;
}, Object.create(null));

但不确定如何获得所需的输出。有人可以帮助我吗?

最佳答案

在减少的同时,如果键尚不存在,也构建想要的结果对象:

  const result = [];
{ // Make hash viable to GCing after this operation
const hash = Object.create(null);
for(const { name, number } of data) {
if(!hash[name])
result.push({ name, numbers: hash[name] = [] });
hash[name].push(number);
}
}

关于javascript - 使用 JavaScript 对象数组中的键值之和进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57578557/

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