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)