js:封装数组去重方法

644 阅读1分钟
 <script>
    //封装数组去重方法
    function unique(arr){
       // slice()/slice(0) 克隆
       // 将原数组内容 完全克隆一份 作为一个新数组返回
       arr = arr.slice(0);//有些需求不想改变之前的原始数据,在不改变原数组的情况下,所以我们克隆一份数组,操作克隆后的数组
       for(var i=0;i<arr.length;i++){
          var cur=arr[i];//取出当前项
          for(var j=i+1;j<arr.length;){
              cur===arr[j]?arr.splice(j,1):j++;
          }
       }
    return arr;   
    }
    // 函数传参时 对于引用数据类型 传递的是引用地址
    var arr = [3, 1, 1, 4 , 2 , 4 , 2 , 4 , 2, 1, 1, 3, 3, 3];
    console.log(unique(arr));
    console.log(arr);
    </script>