Linux 拨号vps windows公众号手机端

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

lewis 7年前 (2018-05-14) 阅读数 10 #程序编程
文章标签 filter

可以使用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方法来判断元素在数组中的索引是否与当前索引相同。如果不相同,则表示该元素已经重复出现,应过滤掉。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门