gpt4 book ai didi

javascript - 按 Id 对数组中的对象进行分组 - JavaScript

转载 作者:行者123 更新时间:2023-12-04 14:06:05 26 4
gpt4 key购买 nike

我有一个对象数组,它有两个字段 id 和操作权限的类型

const array=[
{view: false, id: 1},
{create: false, id: 1},
{read: false, id: 1},
{update: false, id: 1},
{delete: false, id: 1},
{view: false, id: 2},
{create: false, id: 2},
{read: false, id: 2},
{update: false, id: 2},
{delete: false, id: 2},
]

我想将其转换为以下数组:

const permissions=[
{
id: 1,
view: false,
read: false,
create: false,
delete:false,
update:false
},
{
id: 2,
view: false,
read: false,
create: false,
delete:false,
update:false
}
]

最佳答案

您可以使用 Array#reduce 遍历数组在更新 Map 时其中 idkey,其结果对象是 value

最后,您会将每个 id 的分组对象作为此映射中的 values:

const array = [
{view: false, id: 1},
{create: false, id: 1},
{read: false, id: 1},
{update: false, id: 1},
{delete: false, id: 1},
{view: false, id: 2},
{create: false, id: 2},
{read: false, id: 2},
{update: false, id: 2},
{delete: false, id: 2},
];

const res = [...
array.reduce((map, { id, ...elem }) =>
map.set(id, { ...(map.get(id) || { id }), ...elem })
, new Map)
.values()
];

console.log(res);

关于javascript - 按 Id 对数组中的对象进行分组 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68455739/

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