方法一: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"]
来源:https://www.cnblogs.com/l742314100/p/5933588.html