我正在使用 Angular 和响应式(Reactive)表单,并且有一个用于访问页面上的项目的权限对象。基本上,我试图将返回的 API 对象数组映射到一组表单组的表单组。我对 formarray 不感兴趣,因为我有很多依赖于数据库中的结构。
但是,尝试绘制此图是最困难的。
初始结构
[
{module_name: "users", access: true, edit: true, delete: false},
{module_name: "documents", access: true, edit: false, delete: false}
]
所需的 Angular 形结构
accessControl: {
users: {access: true, edit: true, delete: false}
documents: {access: true, edit: false, delete: false}
}
最佳答案
使用 Array.prototype.reduce 尝试以下操作;
const input = [{
module_name: "users",
access: true,
edit: true,
delete: false
},
{
module_name: "documents",
access: true,
edit: false,
delete: false
}
];
const output = input.reduce((acc, curr) => {
const { module_name, ...rest } = curr;
acc[module_name] = rest;
return acc;
}, {});
console.log(output);
关于javascript - 尝试将数组映射到对象 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63513394/