对于数组中重复的项,我们通常都需要剔除掉,这种做法被称为 数组去重。数组去重有这么几种做法:

二重循环

此种方法主要是利用二重循环判断的方法,性能较低。

var unique1=(function(){
var arr1=[1,2,12,3,24,2,3,12,20],i=0,bAdd=true,arr2=[];
for(i=0;i<arr1.length;i++){
bAdd=true;
for(var j=0;j<arr2.length;j++){
if(arr2[j]===arr1[i]){
bAdd=false;
break;
}
}
if(bAdd){
arr2.push(arr1[i]);
}
}
return arr2;
});
alert(unique1());

排序检测法

现将数组进行排序,然后将数组的第一个元素赋给临时数组,再循环逐个判断临时数组的最后一个元素。

var unique2=(function(){
var arr1=[1,2,12,3,24,2,3,12,20],i=0,arr2=[];
arr1.sort();
arr2[0]=arr1[0];
for(i=0;i<arr1.length;i++){
if(arr1[i]!=arr2[arr2.length-1]){
arr2.push(arr1[i])
}
}
return arr2;
});
alert(unique2());

数组检测法

var unique3=(function(){
var arr1=[1,2,12,3,24,2,3,12,20],i=0,arr2=[],temp={};
for(i=0;i<arr1.length;i++){
if(!temp[arr1[i]]){
arr2.push(arr1[i]);
temp[arr1[i]]=1;
}
}
return arr2;
});
alert(unique3());