假设有数组 array = [1,5,2,3,4,2,3,1,3,4]
你要写一个函数 unique,使得
unique(array) 的值为 [1,5,2,3,4]
也就是把重复的值都去掉,只保留不重复的值。
要求:不要做多重循环,只能遍历一次,请给出两种方案,一种能在 ES 5 环境中运行,一种能在 ES 6 环境中运行(提示 ES 6 环境多了一个 Set 对象)
方案一:
var array =[1,5,2,3,4,2,3,1,3,4]
function unique(ar) {
var tmp = {},
ret = [];
for (var i = 0, j = ar.length; i < j; i++) {
if (!tmp[ar[i]]) {
tmp[ar[i]] = 1;
ret.push(ar[i]);
}
}
console.log(ret)
}
unique(array)
方案二:
var array = [1,5,2,3,4,2,3,1,3,4]
function unique(arr){
return Array.from(new Set(arr))
}
unique(array)