数组去重方法

北战南征 提交于 2019-12-20 09:00:00
方法一: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"]  
 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!