将数组先去重再操作(实例)

// 将数据 先去重再分类
var employee = [
{depart: "研发部", name:"貂蝉",id: 1},
{depart: "测试部", name:"吕布",id: 2},
{depart: "研发部", name:"典韦",id: 3},
{depart: "营销部", name:"张辽",id: 4},
{depart: "研发部", name:"貂蝉",id: 1},
{depart: "研发部", name:"貂蝉",id: 5},
{depart: "其他部门", name:"貂蝉",id: 1},
];
let employeeObj = {};
let List =[];
employee.forEach(item =>{
if(!employeeObj[item.id] || !employeeObj[item.depart]){
List.push(item);
employeeObj[item.id] = true;
employeeObj[item.depart] = true;
}
});
//根据部门分组 生成对象
let employeeObj2 = {};
List.forEach(item =>{
employeeObj2[item.depart] = employeeObj2[item.depart] || [];
employeeObj2[item.depart].push(item);
});
//讲对象转为数组
let dataList =[];
let newArr = Object.keys(employeeObj2).map(item =>{
return employeeObj2[item];
});
newArr.forEach(item =>{
dataList.push({depart: item[0].depart,children: item});
})
console.log(dataList);

posted @ 2022-09-30 16:53  搲社会主义墙角  阅读(9)  评论(0编辑  收藏  举报