admin 管理员组

文章数量: 887629


2024年1月12日发(作者:keyboard98什么意思)

ES6中对象数组根据属性去重的方法

在ES6中,有几种方法可以根据属性对对象数组进行去重。

一、使用Set

1. 将对象数组转化为Set

可以使用Set数据结构来实现数组去重。首先,将对象数组转化为Set,Set会自动去重。

```javascript

const arr =

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' },

{ id: 1, name: 'John' }

];

const uniqueArr = [...new Set(arr)];

(uniqueArr);

```

输出:

```javascript

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' }

```

2. 使用Map

另一种使用Set的方法是,将对象的属性值作为Set的键,然后转化为数组。

```javascript

const arr =

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' },

{ id: 1, name: 'John' }

];

const uniqueArr = (new Set((obj => )))

.map(id =>

return (obj => === id);

});

(uniqueArr);

```

输出:

```javascript

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' }

```

二、使用reduce

使用reduce方法可以根据对象的属性值来去重。

```javascript

const arr =

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' },

{ id: 1, name: 'John' }

];

const uniqueArr = ((acc, cur) =>

if (!(obj => === ))

(cur);

}

return acc;

},[]);

(uniqueArr);

```

输出:

```javascript

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' }

```

三、使用filter

使用filter方法可以筛选出属性值不重复的对象。

```javascript

const arr =

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' },

{ id: 1, name: 'John' }

];

const uniqueArr = ((obj, index, self) =>index === dex((el) =>

===

(uniqueArr);

```

输出:

```javascript

{ id: 1, name: 'John' },

{ id: 2, name: 'Jane' }

```

以上是ES6中对象数组根据属性去重的几种方法。根据实际情况选择使用哪种方法,以及优化算法的性能。以上方法也可以根据不同的属性进行去重,只需将代码中的id替换为相应的属性名即可。


本文标签: 属性 方法 对象 数组 使用