国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

javascript - 第二個for循環里面的j--什么意思?

瀏覽:166日期:2023-04-19 09:53:52

問題描述

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

for ( var i=0; i<arr.length; i++ ) {

for ( var j=i+1; j<arr.length; j++ ) { if ( arr[i] == arr[j] ) {arr.splice( j, 1 );j--; }}

}

問題解答

回答1:

如果遇到重復項,從 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--的話會漏掉。

回答2:

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

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

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 绥化市| 陇西县| 思南县| 修武县| 肥西县| 巩留县| 郎溪县| 齐河县| 自治县| 岐山县| 岳普湖县| 宜章县| 青海省| 长海县| 锡林浩特市| 会理县| 望江县| 宜丰县| 特克斯县| 肃南| 武鸣县| 公安县| 婺源县| 西城区| 麟游县| 玉溪市| 石嘴山市| 阜宁县| 乡城县| 南郑县| 鄂伦春自治旗| 灵台县| 芷江| 琼结县| 澄城县| 绥棱县| 平原县| 财经| 金山区| 六盘水市| 宝鸡市|