数组去重

59 阅读1分钟

假设有一个数组 arr = [1, 2, 3, 1, 2, 4, 5, 3],我们需要将其中的重复元素去掉,得到一个新的数组。

方法一:使用 Set

Set 是 ES6 中新增的数据结构,它可以用来存储一组唯一的值。我们可以将原数组转换为 Set,然后再将 Set 转换回数组,这样就能去掉重复元素了。

```javascript
let arr = [1, 2, 3, 1, 2, 4, 5, 3];
let newArr = Array.from(new Set(arr));
console.log(newArr); // [1, 2, 3, 4, 5]
```

方法二:使用 filter

我们可以遍历原数组,使用 filter 方法过滤掉重复元素。具体做法是,对于原数组中的每个元素,我们判断它是否在数组中的索引位置和当前位置相等,如果相等,则说明它是第一次出现,否则就是重复元素,应该被过滤掉。

```javascript
let arr = [1, 2, 3, 1, 2, 4, 5, 3];
let newArr = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(newArr); // [1, 2, 3, 4, 5]
```

方法三:使用 reduce

我们可以使用 reduce 方法,将重复元素从原数组中剔除。具体做法是,对于原数组中的每个元素,我们判断它是否已经出现过,如果没有出现过,则将它添加到结果数组中,否则不做处理。

```javascript
let arr = [1, 2, 3, 1, 2, 4, 5, 3];
let newArr = arr.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []);
console.log(newArr); // [1, 2, 3, 4, 5]
```

以上三种方法都可以实现数组去重,具体使用哪种方法取决于个人偏好和实际情况。