首页 > 代码库 > 数组去重方法

数组去重方法

方法一:
function clearArrEqual(arr){
var Arr=[];
var stopFor;
for(var i in arr){
stopFor=true;
    for(var a=0;a<Arr.length;a++){
if(arr[i]===Arr[a]){//这里的对比,分两种,一种是不是很严格的对比,另一种是非常严格的对比,详细请参考“==”和“===”的区别
           stopFor=false;
        break;
    }
   }
    if(stopFor){
  Arr.push(arr[i]);
    }
  }
}
var Arr1=[12,‘yingfu‘,‘abcdefg‘,‘12‘,588,‘abcdefg‘,‘yingfu‘,‘12‘,588];

console.log(Arr1);
console.log(clearArrEqual(Arr1));

方法二:(此方法有个bug,数组中出现数值和字符串值相等情况会认为相同,例如1,“1”)

function clearArrEq(arr){
    var hash=[];
for(var i=0;i<arr.length;i++){
if(hash[arr[i]]==undefined){
hash[arr[i]]=1;
}else{
hash[arr[i]]++;
}
}
console.log(hash);
arr2=[];
for(var k in hash){
arr2.push(k)
}
console.log(arr2);
    }
}

var Arr1=[12,‘yingfu‘,‘abcdefg‘,‘12‘,588,‘abcdefg‘,‘yingfu‘,‘12‘,588];
clearArrEq(Arr1); //["12", "588", "yingfu", "abcdefg"]
 

数组去重方法