var a = [{id: 1}, {id: 3}, {id: 2}, {id: 3}, {id: 1}];
var b = a.reduce((r, x) => ((r[x.id] || (r[x.id] = [])).push(x), r), {});
var c = Object.keys(b).map(x => b[x]);
console.log©; // [[{id: 1}, {id: 1}], [{id: 2}], [{id: 3}, {id: 3}]]
转载自 https://blog.csdn.net/who_become_gods/article/details/108867377