您好,我試圖結合一個對象數組,並需要最終的結果是一個對象的數組,其中一個attr是唯一的,另一個是具有所有值的數組從原始的按屬性組合對象數組
陣列第二ATTR我:
let arr = [
{
name: 'cdd_register',
levels: 'read'
}, {
name: 'cdd_register',
levels: 'write'
}, {
name: 'annual_reports',
levels: 'write'
}
];
而且我希望得到的結果是:
let result = [
{
name: 'cdd_register',
levels: ['read', 'write']
}, {
name: 'annual_reports',
levels: 'write'
}
];
我從後端
data: [{
id:1
label: "Administrator"
name: "admin"
permissions:{
data: [{
id: 4,
name: "cdd_register.read",
label: "Read access on CDD Register module"
}, {
id: 6,
name: "cdd_register.write",
label: "Write access on CDD Register module"
}, {
id: 7,
name: "annual_reports.write",
label: "Write access on Annual Reports module"
}]
}
}]
這種答覆,這
getModules(roles) {
let modules = [];
_.forEach(roles, role => {
_.forEach(role.permissions.data, permission => {
modules.push(permission);
})
});
return _.uniqBy(modules, 'id').map(module => {
let moduleArray = module.name.split('.');
return {
name: moduleArray[0],
levels: moduleArray[1]
}
});
}
}
後,我有結果,因爲它是現在,但無法弄清楚做的最好的方式(乾淨)。
謝謝。
嗨。歡迎來到SO。您需要以[mcve]的形式添加您已處理的代碼。 – Andy
對不起,使用服務器@Andy – ezekkiel