数组去重的几个办法

<p>
<script type="text/javascript">// <![CDATA[
//数组去重
//1.双层循环
var arr = [1,3,5,3,2,4,5,1];

function qc(arr){
    var brr = [];
    for(var i = 0 ; i < arr.length ; i++){
        for(var j = i+1 ; j < arr.length ; j++){
            if(arr[i] === arr[j]){
                j = ++i;
            }
        }
        brr.push(arr[i]);
    }
    return brr;
}
//2.splice
function qc1(arr){
    for(var i = 0 ; i < arr.length ; i++){
        for(var j = i+1 ; j < arr.length ; j++){
            if(arr[i] === arr[j]){
               arr.splice(j,1);
               arr.length-1;
               j--;
            }
        }
    }
    return arr;
}
//3.对象去重
function qc3(arr){
    var brr = [];
    var obj = {};
    for(var i = 0 ; i < arr.length ; i++){
            if(!obj[arr[i]]){
              obj[arr[i]] = 1;
              brr.push(arr[i]);
            }
    }
    return brr;
}
//4.递归
function qc4(arr){
    arr.sort(function(a,b){
        return a-b;
    })
    function loop(index){
        if(index>0){
            if(arr[index] === arr[index-1]){
                arr.splice(index,1)
            }
            loop(index-1);
        }
    }
    loop(arr.length-1);
    return arr;
}
//5.indexOf
function qc5(arr){
    var brr = [];
   for(var i = 0 ; i < arr.length; i++){
       if( brr.indexOf(arr[i]) == -1 ){
           brr.push(arr[i])
       }
   }
   return brr;
}
//6.es6
arr = [...new Set(arr)];
console.log(arr)
// ]]></script>
</p>

 

posted @ 2019-03-07 08:40  举个栗子!  阅读(130)  评论(0)    收藏  举报