js数组去重小魔法

今天看到一个Array去重的比较有趣的方法,记一下。、

传统的数组去重?

一般就是 结合for循环,结合 indexof等例如

1
2
3
4
5
6
7
8
9
10
11
12
13
var arr = [1, 2, 3, 4, 1, 1, 3]
var arrobj = {},
newArr = [];
for (var i = arr.lenth; i >= 0; i--) {
if (!arrobj[i]) {
arrobj[i] = true;
newArr.push(arr[i]);
}
}
//newArr 为去重后的数组;

去重黑科技?

####ES6新方法:利用Set 对象,这是一种数据结构“集合”,高中数据知识就学了,–>“集合中的各个元素之间,必须是不同的。这是集合元素的互异性要求。”

1
2
3
4
5
var arr = [1, 2, 3, 4, 1, 1, 3]
var newArr = [... new Set(arr)];
//newArr 为去重后的数组;

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。


作者 [@sha Qihe]

2017 年 4月 10日