javascript数组去重的两个方法

时间:2021-02-07 16:51:40

方法一:

创建一个临时数组,判断目标数组中每个元素是否在临时数组中,如果不在就添加进临时数组,最后return临时数组

<script>

  var arr=[1,2,3,4,5,1,2,3,4,5,6,7,8];

  function findInArr(arr,n){

    for(var i=0;i<arr.length;i++){

      if(n==arr[i]){

        return true;

      }

    }

    return false;

  }

  function removeArrRepeate(arr){

    var tmparr=[];

    if(!findInArr(tmparr,arr[i])){

      tmparr.push(arr[i]);

    }

    return tmparr;

  }

  alert(removeArrRepeate(arr));

</script>

方法二:先将目标数组排序,然后循环目标数组,将相邻元素比较,如果相等删除后一个,然后i--;

<script>
  var arr=[1,2,3,4,1,2,3,4,5,6,7];

  function removeArrRepeate(arr){ 

    arr.sort();

    for(var i=0;i<arr.length;i++){

      if(arr[i]==arr[i+1]){

         arr.splice(i,1);

         i--;

      }

    }

    return arr;

  }

  alert(removeArrRepeate(arr));

</script>