javascript将数组传输到新数组
我当前有一个数组:javascript将数组传输到新数组,javascript,arrays,Javascript,Arrays,我当前有一个数组: [ { Id: 14, userRoleId: 2, userResourceId: 2, userActionId: 2, userScopeId: 2, }, { Id: 15, userRoleId: 3, userResourceId: 2, userActionId: 2, userS
[
{
Id: 14,
userRoleId: 2,
userResourceId: 2,
userActionId: 2,
userScopeId: 2,
},
{
Id: 15,
userRoleId: 3,
userResourceId: 2,
userActionId: 2,
userScopeId: 3,
},
{
Id: 16,
userRoleId: 4,
userResourceId: 2,
userActionId: 2,
userScopeId: 3,
},
{
Id: 17,
userRoleId: 5,
userResourceId: 2,
userActionId: 2,
userScopeId: 1,
}
]
如何基于userScopeId生成新数组
数组名称将是userScopeArrayuserScopeId,数组内容是与内容匹配的userScopeId
所以它会像:
userScopeIdArray1:
[
{ Id: 17, userRoleId: 5, userResourceId: 2, userActionId: 2 }
]
userScopeIdArray2:
[
{ Id: 14, userRoleId: 2, userResourceId: 2, userActionId: 2 }
]
userScopeIdArray3:
[
{ Id: 15, userRoleId: 3, userResourceId: 2, userActionId: 2 },
{ Id: 16, userRoleId: 4, userResourceId: 2, userActionId: 2,}
]
您可以使用
reduce
array方法来构建此结果
让输入=[
{
身份证号码:14,
userRoleId:2,
userResourceId:2,
userActionId:2,
userScopeId:2,
},
{
身份证号码:15,
userRoleId:3,
userResourceId:2,
userActionId:2,
userScopeId:3,
},
{
身份证号码:16,
userRoleId:4,
userResourceId:2,
userActionId:2,
userScopeId:3,
},
{
身份证号码:17,
userRoleId:5,
userResourceId:2,
userActionId:2,
userScopeId:1,
}
];
让输出=输入。减少((acc,val)=>{
让key=“userScopeIdArray”+val.userScopeId;
if(附件[键]){
acc[键]。推送(val);
}否则{
acc[键]=[val];
}
返回acc;
}, {});
控制台日志(输出)代码>您可以使用数组#reduce
const arr=[{Id:14,userRoleId:2,userResourceId:2,userActionId:2,userScopeId:2,},{Id:15,userRoleId:3,userResourceId:2,userScopeId:3,},{Id:16,userRoleId:4,userResourceId:2,userScopeId:3,},{Id:17,userRoleId:5,userResourceId:2,userScopeId:1,}];
让res=arr.reduce((acc,cur)=>{
让id='userScopeId'+cur['userScopeId'];
acc[id]=acc[id]| |[];
acc[id]。推送(cur);
返回acc;
},{});
console.log(res)