搜尋

首頁  >  問答  >  主體

javascript - 第二個for迴圈裡面的j--什麼意思?

var arr = [ 1,2,2,4,2 ];

for ( var i=0; i 雷雷

}

三叔三叔2733 天前1771

全部回覆(2)我來回復

  • 某草草

    某草草2017-06-30 10:00:48

    如果遇到重複項,從 arr 中 splice 掉。
    splice 掉之後,數組下一項仍是當前索引,所以要先 j--; 再循環中的 j++,保持索引正確。

    例如,外層第2次循環,i = 1,j = 2,然後arr[1] 是2,arr[2] 也是2,arr[2] 會被splice 掉,數組變成[1,2, 4,2],下個元素4 仍是第2 項,如果不先j--的話會漏掉。

    回覆
    0
  • 代言

    代言2017-06-30 10:00:48

    樓上說的沒錯。補充一下,直接用 filter 就可以實現了。

    var arr = [ 1,2,2,4,2 ];
    
    arr.filter(function (e, i) {
        return arr.indexOf(e) === i;
    })

    回覆
    0
  • 取消回覆