在过去的两个小时中,我一直在尝试此操作,但是我找不到实现此目的的最简单方法。这是我的问题。
我具有如下的JSON结构
[{
"groupid": 29,
"percentage": 14
}, {
"groupid": 29,
"percentage": 22
}, {
"groupid": 59,
"percentage": 66,
}]
,我需要使用Javascript将其转换为以下内容。
{
"29": [14, 22],
"59": [66]
}
任何帮助将不胜感激。
谢谢。
答案 0 :(得分:4)
reduce
输入到对象中。在每次迭代中,如果还不存在,请在累加器对象中的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);