js过滤数组中重复的对象

在 JavaScript 中,可以使用 Set 数据结构来过滤数组中的重复对象。Set 只能存储唯一的值,所以当把数组转换为 Set 后再转回数组时,就能去除重复的对象了。

以下是代码示例:

let arr = [{a: 1}, {b: 2}, {a: 1}, {c: 3}];
let set = new Set(arr);
let uniqueArray = [...set];
console.log(uniqueArray);
// Output: [{a: 1}, {b: 2}, {c: 3}]

如果对象需要通过某个属性进行判断是否重复,则可以使用 map 和 filter 方法:

let arr = [{id: 1, name: 'John'}, {id: 2, name: 'Jane'}, {id: 1, name: 'Jim'}];
let map = new Map();
let uniqueArray = arr.filter(item => !map.has(item.id) && map.set(item.id, true));
console.log(uniqueArray);
// Output: [{id: 1, name: 'John'}, {id: 2, name: 'Jane'}]
  •