数组根据某属性重新分组

let arr = [{ depart: "一部", name: "张三" }, { depart: "二部", name: "张三" }, { depart: "一部", name: "李四" }];
//思路: 首先将class作为分组的依据  班级对应人名 应为对象类型, 然后根据对象的key 将对象转为数组 
//将数组重新分组
let obj = {};
arr.forEach(item => {
obj[item.depart] = obj[item.depart] || [];
obj[item.depart].push(item);
});
//将对象转为数组
let arr2 = Object.keys(obj).map(item=>{
return obj[item];
});
//已上已经对数据进行了分组
let arr3 = [];
//为数组增加前缀
arr2.forEach((item) =>{
arr3.push({depart: item[0].depart,children: item});
});
console.log(arr3);
posted @ 2022-04-26 17:02  搲社会主义墙角  阅读(118)  评论(0编辑  收藏  举报