0%

数组去重的几种方法

今天记录下数组去重的几种方法,主要是思路。自觉在算法和数据结构方面比较薄弱,以后要注意这方面的学习。

1. 利用ES6的Set

ES6提供了一种新的数据结构Set,这种数据结构类似于数组,但是成员的值都是唯一的,不管是基本类型的值还是引用类型的值。学习更多关于Set的知识可以参考ECMAScript6入门一书

Set是一个构造函数,它可以接受一个数组作为参数,返回的Set实例对象的成员都是唯一的。利用Array.from()方法我们可以把Set对象转换为数组。所以通过Set这个“中转站”我们就达到了数组去重的目的。

1
2
var arr = [1, 2, 3, 1, 2, 3]
Array.from(new Set(arr)) // [1, 2, 3]

2. 使用includes或indexOf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var arr = [1, 2, 3, 1, 2, 3]

function unique(arr) {
var res = []

while (arr.length) {
var item = arr.shift()
// if (arr.indexOf(item) === -1) {<