js中的数组去重方法总结

   //数组去重函数
      
      var arr=[3,3,4,13,7,8,8,9];
      
      function uniqueArray1(arr){

        var tmp=[];
        for(let i=0,len=arr.length;i<len;i++){
          let flag=true;
          for(let j=0,len=tmp.length;j<len;j++){
              if(arr[i]==tmp[j]){
                flag=false;
                break;
              }
          }
          if(flag){
            tmp[tmp.length]=arr[i];
          }
        }
   
        return tmp;

      }
      //0.029052734375 ms

      //利用哈希表实现去重
      

      function uniqueArray2(arr){
      
        var tmp=[],hash={};
        for(let i=0;arr[i]!=null;i++){

          if(!hash[arr[i]]){
            tmp.push(arr[i]);
            hash[arr[i]]=true;
          }
        }
     
        return tmp;

      }
      //0.012939453125 ms


      //利用map去重

      function uniqueArray3(arr){
      
        var tmp=[];                       //定义空数组
        arr.map(function(x){            //用 map 遍历数组
          if(tmp.indexOf(x)==-1){       //如果当前值没有存在空数组中
            tmp.push(x);              //追加到空数组中
          }
          }
        );
   
        return tmp;
      } 
      //0.05224609375 ms
      console.log(uniqueArray1(arr));

 

posted @ 2021-03-26 20:34  0与1  阅读(125)  评论(0编辑  收藏  举报