首页 > 代码库 > js数组去重的两种方法

js数组去重的两种方法

     数组去重这种问题经常会遇到,解决方法也有很多,这里就总结两种比较常用的方法。

方法一

     第一种方法的思路:遍历数组里的元素,由第一个元素开始依次按照顺序与其后面的元素相比较,如果不同则不用管,相同则把其后所被比较的元素去除。这样所有元素循环一遍,数组中重复的元素就能全部去除。

代码:

<script>

     var arr = [1, 5, 7, 6, 3, 2, 5, 4, 6, 9, 5, 1, 2, 3, 5, 4, 8, 9, 5, 4, 5, 0];
     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);
               j--;
            }
         }
      }
     document.write(arr);

</ script>

方法二

     第二种方法的思路:新建一个空数组,需要去重的数组的每一个元素依次与新建数组的所有元素比较。如果不同就把元素放入新建的数组中,如果相同就不用处理。这样需要去重的数组的所有元素循环一遍,新建的数组即为按要求完成去重后得到的数组。

代码:

<script>

     var arr = [1, 5, 7, 6, 3, 2, 5, 4, 6, 9, 5, 1, 2, 3, 5, 4, 8, 9, 5, 4, 5, 0];
     var arr1 = [];
     for (var i = 0; i <= arr.length; i++) {
         var states = 1;
         for (var j = 0; j <= arr1.length; j++) {
             if (arr[i] == arr1[j]) {
                states = 0;
                break;
             }
          }
         if (states == 1) {
            arr1.push(arr[i]);
         }
       }
      document.write(arr1);

</ script>

js数组去重的两种方法