我有对象的嵌套数组的数组。我只想从数据中获取 Permission 对象,并且需要将数据数组转换为permission 对象。
"data":[
{
"Book":[
{
"label":"Can View",
"value":"can_view"
},
{
"label":"Can Create",
"value":"can_create"
},
]
},
{
"Articles":[
{
"label":"Can View",
"value":"can_view"
},
]
},
{
"Journals":[
{
"label":"Can Upload",
"value":"can_upload"
},
{
"label":"Can Download",
"value":"can_download"
}
]
},
{
"Permission":[
{
"label":"Can View",
"value":"can_view"
},
{
"label":"Can Create",
"value":"can_create"
}
]
}
]
我正在尝试从我的数据对象列表中获取权限对象。我正在使用过滤器方法来获取 Permission 数组并想要转换权限对象,但我得到了嵌套数组。哪里有问题?
let dataPer = data.permissions.filter(item=>item.Permission).map(item=>item.Permission)
console.log(dataPer)
我接受的输出是:
let output= {
Permission:{
can_view:"can_view",
can_create:"can_create"
}
}
最佳答案
那么你可以尝试这样的事情:
let data=[
{
"Book":[
{
"label":"Can View",
"value":"can_view"
},
{
"label":"Can Create",
"value":"can_create"
}
]
},
{
"Articles":[
{
"label":"Can View",
"value":"can_view"
}
]
},
{
"Journals":[
{
"label":"Can Upload",
"value":"can_upload"
},
{
"label":"Can Download",
"value":"can_download"
}
]
},
{
"Permission":[
{
"label":"Can View",
"value":"can_view"
},
{
"label":"Can Create",
"value":"can_create"
}
]
}
];
let myPermissionObjects = [];
let permissionConvert = ()=>{
for(let current in data)
for(let currentObject in data[current])
for(let currentResult in data[current][currentObject])
myPermissionObjects.push(data[current][currentObject][currentResult]);
};
permissionConvert();
console.log(myPermissionObjects);
如果我正确理解你的问题
仅适用于对象权限:
let data=[
{
"Book":[
{
"label":"Can View",
"value":"can_view"
},
{
"label":"Can Create",
"value":"can_create"
}
]
},
{
"Articles":[
{
"label":"Can View",
"value":"can_view"
}
]
},
{
"Journals":[
{
"label":"Can Upload",
"value":"can_upload"
},
{
"label":"Can Download",
"value":"can_download"
}
]
},
{
"Permission":[
{
"label":"Can View",
"value":"can_view"
},
{
"label":"Can Create",
"value":"can_create"
}
]
}
];
let myPermissionObjects = [];
let permissionConvert = ()=>{
for(let current in data)
for(let currentObject in data[current].Permission)
myPermissionObjects.push( data[current].Permission[currentObject]);
};
permissionConvert();
console.log(myPermissionObjects);
let onePermission = [];
for(let next in myPermissionObjects)
{
onePermission["Permission"]=myPermissionObjects[next];
console.log(myPermissionObjects[next]);
}
关于javascript - 如何将嵌套对象数组转换为javascript中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60869234/