let roles = [
{ menuId: 3, mrId: 14 },
{ menuId: 3, mrId: 13 },
{ menuId: 3, mrId: 12 },
{ menuId: 3, mrId: 11 },
{ menuId: 3, mrId: 10 },
{ menuId: 3, mrId: 8 },
{ menuId: 4, mrId: 21 },
{ menuId: 4, mrId: 20 },
{ menuId: 4, mrId: 19 },
{ menuId: 4, mrId: 18 },
{ menuId: 4, mrId: 17 },
{ menuId: 4, mrId: 15 },
];
方法一:
let map = {};
roles.forEach(item => {
if (!map[item.menuId]) {
map[item.menuId] = [];
}
map[item.menuId].push(item.mrId);
});
let Rolesa = Object.entries(map).map(item => {
return {
menuId: item[0],
roles: item[1]
};
});
方法二:
let menuids = new Set();
console.log('menuids: ', menuids);
roles.forEach(ele => {
menuids.add(ele.menuId);
});
menuids = Array.from(menuids);
let A = [];
menuids.forEach(ele => {
let obj = { menuId: null, role: [] };
roles.forEach(e => {
if (e.menuId == ele) {
obj.menuId = e.menuId;
obj.role.push(e.mrId);
}
});
A.push(obj);
});
console.log("===", A);
方法三:
let arrs =roles.reduce((a, b) => {
if (a[b.menuId]) {
a[b.menuId].push(b);
} else {
a[b.menuId] = [b];
}
return a;
}, {});
console.log(arrs, "arrs");
let end = [];
for (let i in arrs) {
let roleId = [];
arrs[i].forEach((item) => {
roleId.push(item.mrId);
});
let obj = {
menuId: i,
roleId: roleId,
};
end.push(obj);
}
console.log(end, "end");
数组对象转换方式
最新推荐文章于 2022-12-07 14:31:04 发布