文章詳情頁
javascript - 第二個for循環(huán)里面的j--什么意思?
瀏覽:156日期: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:如果遇到重復(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] 會被 splice 掉,數(shù)組變成 [1,2,4,2],下個元素 4 仍是第 2 項(xiàng),如果不先 j--的話會漏掉。
回答2:樓上說的沒錯。補(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. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. javascript - QWebEngineView 如何爬 angular 的動態(tài)數(shù)據(jù)?3. javascript - 使用angular 的ui-sref 中出現(xiàn)了中文參數(shù),點(diǎn)擊跳轉(zhuǎn)后瀏覽器的地址欄里出現(xiàn)轉(zhuǎn)義后的%AE....%a%44. java - ConcurrentHashMap中的get()方法為什么可以不加鎖?5. java - 郵箱如何發(fā)送html內(nèi)容6. html5 - 這個代碼顯示功能如何實(shí)現(xiàn)?7. javascript - 用JS 七牛上傳圖片出現(xiàn)文件已存在的錯誤(file exists)8. java - 字節(jié)流轉(zhuǎn)成字符串之后,在通過字符串轉(zhuǎn)成字節(jié)流后的文件為什么會不一樣?9. css3 - 圖片等比例縮放10. java - 如何理解“不要通過共享內(nèi)存來通信,而應(yīng)該通過通信來共享內(nèi)存”?
排行榜

熱門標(biāo)簽