第一种:js原生写法
思路: 双层循环,外层循环元素,内层循环时比较值,如果有相同的值则跳过,不相同则push进数组
Array.prototype.distinct = function(){
vararr = this,
result = [],
i,
j,
len = arr.length;
for(i = 0; i < len; i++){
for(j = i + 1; j < len; j++){
if(arr[i] === arr[j]){
j = ++i;
}
}
result.push(arr[i]);
}
returnresult;
}
vararra = [1,2,3,4,4,1,1,2,1,1,1];
arra.distinct(); //返回[3,4,2,1]
第二种:利用ES6的set
let arr = [1,2,2,3,3];
let resultarr = [...newSet(arr)];
console.log(resultarr); //[1,2,3]