JavaScript创建Object结构的数组



这是我的问题:

我有一个JSON结构,如下

[{
"groupid": 29,
"percentage": 14
}, {
"groupid": 29,
"percentage": 22
}, {
"groupid": 59,
"percentage": 66,
}]

我需要使用Javascript将其转换为如下所示。

{
"29": [14, 22],
"59": [66]
}

reduce对象的输入。在每次迭代中,如果accumulator对象中的groupid键还不存在,则在该键处创建一个数组,然后将push添加到该数组:

const input = [{
"groupid": 29,
"percentage": 14
}, {
"groupid": 29,
"percentage": 22
}, {
"groupid": 59,
"percentage": 66,
}];
const output = input.reduce((a, { groupid, percentage }) => {
if (!a[groupid]) a[groupid] = [];
a[groupid].push(percentage);
return a;
}, {});
console.log(output);

最新更新