数组去重的几种方法
方法一:
var arr=[2,4,5,6,2,3,4,1,7,8,2,4,5,6];
var temp=[];
function cancelRepeat(arr){
for(var i=0;i<arr.length;i++){
if(temp.indexOf(arr[i])===-1){
temp.push(arr[i]);
}
}
}
cancelRepeat(arr);
console.log(temp);
方法二:
var arr=[2,4,5,6,2,3,4,1,7,8,2,4,5,6];
var result=[],hash={};
function canselRepeat2(arr){
for(var i=0,elem;(elem=arr[i])!= null;i++){
if(!hash[elem]){
result.push(elem);
hash[elem]=true;
}
}
}
cancelRepeat2(arr);
console.log(result);
方法三:
var arr=[2,4,5,6,2,3,4,1,7,8,2,4,5,6];
var temp=[],isRepeated;
function cancelRepeat3(arr){
for(var i=0;i<arr.length;i++){
isRepeated=false;
for(var j=0;j<temp.length;j++){
if(arr[i]===temp[j]){
isRepeated=true;
break;
}
}
if(!isRepeated){
temp.push(arr[i]);
}
}
}
cancelRepeat3(arr);
console.log(temp);
方法四:set去重(es6)
var arr=[2,4,5,6,2,3,4,1,7,8,2,4,5,6];
function canselRepeat4(target){
return [...new Set(target)];
}
console.log(canselRepeat4(arr));
注:'...'是es6的扩展运算符 作用是将set展开为用都好隔开的参数序列。
方法五:
[1,3,4,5,1,2,3,3,4,8,90,3,0,5,4,0].filter(function(elem,index,Array){
return index === Array.indexOf(elem);
})