怎么用filter过滤重复数组对象

avatar
作者
猴君
阅读量:8

可以使用filter方法结合indexOfincludes来过滤重复的数组对象。

下面是使用filterindexOf的示例代码:

let arr = [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 1, name: 'Alice' }, { id: 3, name: 'Charlie' }, { id: 2, name: 'Bob' } ]; let uniqueArr = arr.filter((obj, index, array) => { return array.findIndex(item => item.id === obj.id) === index; }); console.log(uniqueArr); 

输出结果为:

[ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' } ] 

使用indexOf的示例代码如下:

let arr = [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 1, name: 'Alice' }, { id: 3, name: 'Charlie' }, { id: 2, name: 'Bob' } ]; let uniqueArr = arr.filter((obj, index, array) => { return array.indexOf(obj) === index; }); console.log(uniqueArr); 

输出结果与之前相同。这里使用indexOf方法来判断元素在数组中的索引是否与当前索引相同。如果不相同,则表示该元素已经重复出现,应过滤掉。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!