尝试将数组映射到对象-Javascript

尝试将数组映射到对象-Javascript,javascript,angular,Javascript,Angular,我使用的是角度表单和反应表单,并且有一个权限对象来访问页面上的项目。基本上,我试图将返回的API对象数组映射到一组formgroup。我对formarray不感兴趣,因为根据数据库中的结构,我得到了很多 但是,在绘制地图的过程中,最困难的是 初始结构 [ {module_name: "users", access: true, edit: true, delete: false}, {module_name: "documents", access: t

我使用的是角度表单和反应表单,并且有一个权限对象来访问页面上的项目。基本上,我试图将返回的API对象数组映射到一组formgroup。我对formarray不感兴趣,因为根据数据库中的结构,我得到了很多

但是,在绘制地图的过程中,最困难的是


初始结构

[
{module_name: "users", access: true, edit: true, delete: false},
{module_name: "documents", access: true, edit: false, delete: false}
]

accessControl: {
users: {access: true, edit: true, delete: false}
documents: {access: true, edit: false, delete: false}
}

角度形成所需的结构

[
{module_name: "users", access: true, edit: true, delete: false},
{module_name: "documents", access: true, edit: false, delete: false}
]

accessControl: {
users: {access: true, edit: true, delete: false}
documents: {access: true, edit: false, delete: false}
}

试试这个:

arr.forEach(module => {
   accessControl[module.module_name] = {
     access: module.access, edit: module.edit, delete: module.delete
  }
})
尝试以下使用方法

const输入=[{
模块名称:“用户”,
访问:是的,
编辑:对,
删除:false
},
{
模块名称:“文件”,
访问:是的,
编辑:false,
删除:false
}
];
常量输出=输入。减少((acc,curr)=>{
常量{module_name,…rest}=curr;
acc[模块名称]=剩余;
返回acc;
}, {});

控制台日志(输出)基于@Yair-Cohen-answer,但不指定从数据传递的参数:

var accessControl={};
风险值数据=[
{模块名称:“用户”,访问:真,编辑:真,删除:假},
{模块名称:“文档”,访问:true,编辑:false,删除:false}
];
data.forEach(x=>{
accessControl[x.module_name]=x;
删除accessControl[x.module\u name]。module\u name;
});

log({accessControl})你能告诉我们你的代码在哪里尝试映射结构,我们告诉你哪里出了问题吗?也很好。事实上,我不确定输入过程中的参数,它还没有编码,所以可以扩展。谢谢