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循環數據下標的基礎上加一,這樣對比的數據就不會出現相同下標的數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM