javaScript 数组去重 双层for循环

    let  arr=[1,2,2,3,1,4,4,8,8,8,8,5,5,6,6,7,7,8]
  
       //第一次遍历数组
        for(var i=0;i<arr.length;i++){
       //第二次遍历数组,是第一遍历数组下标的下一个数据
            for(var j=i+1;j<arr.length;j++){
        //判断第一层遍历数据和第二层遍历的数据是否相同
                if(arr[i]==arr[j]){
              //如果数据相同则通过splice删除一条相同的数据
                    arr.splice(i,1)
              //i是第一层遍历的下标,因为上一步删除了一条数据,所以下标也需要减一,否则实际下标,要比数组中的数据更多
                    i--;
               //j 也同样需要和i一样减一,保持遍历依旧同步判断
                    j--;
                }
            }

//去重完成以后,数组数据在控制台输出
  console.log(arr)

  第一个for循环是拿出一条数据,和第二个for循环中的所有数据,进行对比。

  但是为了防止下标相同的数据进行对比,所以第二个for循环要在第一个for循环数据下标的基础上加一,这样对比的数据就不会出现相同下标的数据。

posted @ 2020-04-13 12:12  吴小恩  阅读(4620)  评论(0编辑  收藏  举报