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

标签 javascript arrays duplicates

以这个数组为例:

 [{id: 0, weight: 200}
 {id: 0, weight: 200}
 {id: 1, weight: 75}
 {id: 2, weight: 5}]

我需要得到它的结果:

[  {id:0, times:2},
   {id:1, times:1},
   {id:2, times:1}]

最佳答案

你可以将数组缩减为一个新的数组

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)

关于javascript - 如何将数组中的重复对象分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45064107/

相关文章:

javascript - js 查找具有相同innerHTML 的元素

Javascript 循环对象并从数组创建缺失的对象

python - 查找列组合中的重复项

java - hashset从数组Java中删除重复项

mysql - 我正在寻找将删除重复项的 SQL 代码,其中重复项被定义为两个特定字段的相等性

javascript - 重置元素 'odd' 或 'even' 状态?

javascript - 在窗口调整大小时暂停/停止或删除 HTML5 视频

javascript - 是否可以根据用户输入使用 setState 更改状态内的字段

javascript - 二维数组数值排序

javascript - 将数组转换为逗号分隔的文本