js中数组对象去重filter
时间: 2023-10-11 09:05:02 浏览: 96
js代码-数组 对象去重 (对象的所有属性相同才能认为相同)
在 JavaScript 中,你可以使用 `filter` 方法来对数组进行去重操作。下面是一个示例代码:
```javascript
const array = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 1, name: 'John' },
{ id: 3, name: 'Bob' },];
const uniqueArray = array.filter((obj, index, self) =>
index === self.findIndex((o) => o.id === obj.id && o.name === obj.name)
);
console.log(uniqueArray);
```
上述代码中,我们使用 `filter` 方法和 `findIndex` 方法来进行去重操作。`filter` 方法接受一个回调函数,该函数会在数组的每个元素上被调用。在回调函数中,我们使用 `findIndex` 方法来查找当前元素在数组中的第一个索引位置。如果当前元素的索引与其第一次出现的索引位置相同,则保留该元素,否则过滤掉重复元素。
在上面的示例中,最终会输出如下结果:
```javascript
[
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 3, name: 'Bob' },
]
```
注意:此方法对于数组中的对象元素的属性进行一一比较,如果对象属性较多或者属性值较复杂,建议使用其他更适合的去重方式。
阅读全文