数组去重

写几个目前记得的数组去重方法。

例子: var arr = [1, 2, 3, 3, 4]

Set

1
var arr1 = Array.from(new Set(arr));

循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Array.prototype.unique = function() {
var arr = [];
var isRepeat;
for (let i = 0; i < this.length; i++) {
isRepeat = false;
if (arr.includes(this[i])) {
isRepeat = true;
}
if (!isRepeat) {
arr.push(this[i]);
}
}
return arr;
}

indexOf

1
2
3
4
5
Array.prototype.unique = function() {
return this.filter((item, index) => {
return this.indexOf(item) === index;
})
}

Map

1
2
3
4
5
6
Array.prototype.unique = function() {
var map = new Map();
return this.filter((item, index) => {
return map.get(item) ? false : map.set(item, true)
})
}

这是目前从网上看完后,自己能够记住的,后续看能不能多记几种吧。

祝圣诞快乐。Merry Xmax! :christmas_tree: