我如何将数组中的重复对象分组

Edi*_*Neo 4 javascript arrays duplicates

以这个数组为例:

 [{id: 0, weight: 200}
 {id: 0, weight: 200}
 {id: 1, weight: 75}
 {id: 2, weight: 5}]
Run Code Online (Sandbox Code Playgroud)

我需要得到它的结果:

[  {id:0, times:2},
   {id:1, times:1},
   {id:2, times:1}]
Run Code Online (Sandbox Code Playgroud)

ade*_*neo 8

您可以将数组减少为具有计数的新数组

var arr = [
    { id: 0, weight: 200 }, 
    { id: 0, weight: 200 }, 
    { id: 2, weight: 75  }, 
    { id: 9, weight: 5   }
];

var arr2 = arr.reduce( (a,b) => {
    var i = a.findIndex( x => x.id === b.id);
    return i === -1 ? a.push({ id : b.id, times : 1 }) : a[i].times++, a;
}, []);

console.log(arr2)
Run Code Online (Sandbox Code Playgroud)