数组去重的方法

71 阅读1分钟

1.双层for循环

        let arr1=[1,2,2,4,5,6,6,6];
       function unique(arr){
           for(let i=0;i<arr.length;i++){
               for(let j=i+1;j<arr.length;j++){
                   if(arr[i]==arr[j]){
                       arr.splice(j,1);
                       j--;
                   }
               }
           }
           return arr;
       }
       console.log(unique(arr1));

2.indexof


    function unique(arr) {
            for (let i = 0; i < arr.length; i++) {
                 if(arr.indexOf(arr[i])!=i){
                     arr.splice(i,1);
                     i--;
                 }
            }
            return arr;
        }
        console.log(unique(arr1));

3.set方法

  function unique(arr){
             
             return [...new Set(arr)];
         }
         console.log(unique(arr1));

4.map方法

      function unique(arr){
             let result=[];
             let map=new Map();
             for(let i of arr){
                 if(!map.has(i)){
                     result.push(i);
                     map.set(i,1)
                 }
             }
            return result;
         }
         console.log(unique(arr1));

5.sort方法

       function unique(arr){
           let newArr=arr.sort((a,b)=>{ return a-b});
          for(let i=0;i<arr.length;i++){
              if(arr[i]==arr[i+1]){
                  arr.splice(i,1);
                  i--;
              }
          }
          return arr;
        }