昨天在复习的时候看了下数组去重的方法,然后测试了下这些数组去重方法优缺点,其中结合两种去重方法(对象键名比较法、indexof)的优点,自己写了个多维数组的去重。这个方法能够去除基本类型,多维数组,函数,null,undefined的重复项。如果有错误的地方或者有其他更好的方法可以留言告诉我,我是萌新(〃'▽'〃),大佬勿喷。
function unique(array){
var obj = {},
result = [],
len = array.length;
for(var i = 0; i<len; i++){
if(Object.prototype.toString.call(array[i])=='[object Array]'){
if(!obj[array[i]]){
obj[array[i]] = 'seat'; //seat占位 没有具体作用
result.push(unique(array[i])); //递归再次过滤
}
}else{
if(result.indexOf(array[i]) == -1){
result.push(array[i]);
}
}
}
return result;
}
为了验证,写了个数组进行测试
function b(){};
var Arr = ['b',&