文章詳情頁(yè)
javascript - 第二個(gè)for循環(huán)里面的j--什么意思?
瀏覽:139日期:2023-04-19 09:53:52
問(wèn)題描述
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--; }}
}
問(wèn)題解答
回答1:如果遇到重復(fù)項(xiàng),從 arr 中 splice 掉。splice 掉之后,數(shù)組下一項(xiàng)仍是當(dāng)前索引,所以要先 j--; 再循環(huán)中的 j++,保持索引正確。
比如,外層第2次循環(huán),i = 1,j = 2,然后 arr[1] 是2,arr[2] 也是2,arr[2] 會(huì)被 splice 掉,數(shù)組變成 [1,2,4,2],下個(gè)元素 4 仍是第 2 項(xiàng),如果不先 j--的話會(huì)漏掉。
回答2:樓上說(shuō)的沒(méi)錯(cuò)。補(bǔ)充一下,直接用 filter 就可以實(shí)現(xiàn)了。
var arr = [ 1,2,2,4,2 ];arr.filter(function (e, i) { return arr.indexOf(e) === i;})
標(biāo)簽:
JavaScript
相關(guān)文章:
1. mysql - 數(shù)據(jù)庫(kù)表中,兩個(gè)表互為外鍵參考如何解決2. 哭遼 求大佬解答 控制器的join方法怎么轉(zhuǎn)模型方法3. sql語(yǔ)句 - 如何在mysql中批量添加用戶?4. mysql - 表名稱前綴到底有啥用?5. mysql儲(chǔ)存json錯(cuò)誤6. 編輯成功不顯示彈窗7. mysql - 怎么生成這個(gè)sql表?8. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語(yǔ)法實(shí)現(xiàn)存在即更新應(yīng)該使用哪個(gè)標(biāo)簽?9. Navicat for mysql 中以json格式儲(chǔ)存的數(shù)據(jù)存在大量反斜杠,如何去除?10. 怎么php怎么通過(guò)數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。
排行榜

熱門標(biāo)簽