首页  >  问答  >  正文

javascript - 第二个for循环里面的j--什么意思?

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

for ( var i=0; i 雷雷

}

三叔三叔2668 天前1733

全部回复(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
  • 取消回复