文章詳情頁
javascript - 第二個for循環里面的j--什么意思?
瀏覽:171日期: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
相關文章:
1. java - 同一臺電腦,我提交代碼然后推送到遠端倉庫,顯示的提交人和推送人不一致,怎么解決2. 為什么我寫的PHP不行3. html - css布局問題,背景用用div畫的三角形是否用absolute與z-index來定位與規定在下方是否是個好方案4. 我 想好好學精通一門技術,大家用的走過的路,幫我指點指點唄 讓我少走了彎路和坑的苦 ,自學,自己摸5. 正則表達式 - nginx 正則,如何匹配不以/結尾且不以.xml .html .htm結尾6. Android 高德地圖如何移除添加的某個marker?7. javascript - vue監聽data中的某一數組的某一項8. 淺談vue生命周期共有幾個階段?分別是什么?9. index.php錯誤,求指點10. java - web端百度網盤的一個操作為什么要分兩次請求服務器, 有什么好處嗎
排行榜
