zoukankan      html  css  js  c++  java
  • 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循环数据下标的基础上加一,这样对比的数据就不会出现相同下标的数据。

  • 相关阅读:
    LeetCode数据库178
    LeetCode数据库181
    LeetCode数据库177
    LeetCode数据库176
    HNOI2003 消防局的设立
    HNOI2001 产品加工
    Luogu P1020 关路灯
    NOIP2004 虫食算
    SP2713 GSS4-Can you answer these queries IV
    APIO2008 免费道路
  • 原文地址:https://www.cnblogs.com/xiaobu-wu/p/12690562.html
Copyright © 2011-2022 走看看