对数组对象根据某一属性进行分组

279 阅读1分钟
let arr = [{id:1},{id:1},{id:2},{id:3},{id:4},{id:5}];
 let list = [];
 let obj = {};
 for(var i = 0;i<arr.length;i++){
   if(!obj[arr[i].id]){
    obj[arr[i].id] = arr[i].id;
    list.push({
      id:arr[i].id,
      data:[arr[i]]
    })
   }else{
     for(var j = 0;j<list.length;j++){
       if(arr[i].id == list[j].id){
         list[j].data.push(arr[i]);
         break
       }
     }
   }
 }
 console.log(obj,list)