如何实现数组去重?

假设有数组 array = [1,5,2,3,4,2,3,1,3,4]
你要写一个函数 unique,使得
unique(array) 的值为 [1,5,2,3,4]

也就是把重复的值都去掉,只保留不重复的值。

ES5环境

1
2
3
4
5
6
7
8
9
10
11
array = [1,5,2,3,4,2,3,1,3,4]
var tmpObj = {};
var result = [];
array.forEach(function(a) {
var key = (typeof a) + a;
if (!tmpObj[key]) {
tmpObj[key] = true;
result.push(a);
}
})
console.log(result) // (5) [1, 5, 2, 3, 4]

ES6环境

1
2
3
4
5
array = [1,5,2,3,4,2,3,1,3,4]
function unique(array) {
return Array.from(new Set(array))
}
unique (array) // (5) [1, 5, 2, 3, 4]