gpt4 book ai didi

javascript - 使用键将数组中的对象分组并形成新的数组对象

转载 作者:行者123 更新时间:2023-11-30 11:11:27 25 4
gpt4 key购买 nike

下面是我的数组对象

[{ role : 'Role 1', name: 'A', slid: 'a'}, {role : 'Role 1', name: 'B',slid: 'b'}, {role : 'Role 2', name: 'X', slid: 'x'}, {role : 'Role 2',name: 'Y', slid: 'y'},{role : 'Role 3',name: 'Z',slid: 'z'}]

如何使用 Angular 色将数组中的对象组合起来,形成如下格式的新数组对象。

[{role : 'Role 1', list: [{name: 'A', slid: 'a'}, {name: 'B', slid: 'b'}]},
{role : 'Role 2', list: [{name: 'X, slid: 'x'}, {name: 'Y', slid: 'y'}]},
{role : 'Role 3', list: [{name: 'Z', slid: 'z'}]}]

我研究了很多例子,但找不到解决方案。

最佳答案

您可以使用reduce 将数组分组为一个对象。使用 Object.values 将对象转换为数组。

var arr = [{"role":"Role 1","name":"A","slid":"a"},{"role":"Role 1","name":"B","slid":"b"},{"role":"Role 2","name":"X","slid":"x"},{"role":"Role 2","name":"Y","slid":"y"},{"role":"Role 3","name":"Z","slid":"z"}];

var result = Object.values(arr.reduce((c, {role,...r}) => {
c[role] = c[role] || {role,list: []};
c[role].list.push(r);
return c;
}, {}));

console.log( result );

关于javascript - 使用键将数组中的对象分组并形成新的数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53458983/

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