文章詳情頁
javascript - 第二個for循環里面的j--什么意思?
瀏覽:152日期: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. python - Fiddler+Android模擬器抓取app,json數據被加密了,如何解析?2. 在windows下安裝docker Toolbox 啟動Docker Quickstart Terminal 失敗!3. javascript - 為什么會打印兩次啊?4. html5 - 剛接觸H5,為什么我覺得很多標簽都沒什么用呢?5. 大兄弟們,你們都用什么框架開發 web app6. css3 - css做動畫效果7. java中返回一個對象,和輸出對像的值,意義在哪兒8. java-ee - JAVA8 lambdas表達式 改變外面變量的值9. 主題切換問題,用過別人的webapp在后臺切換模板主題后手機端打開網頁就是切換到的主題了10. javascript - 火狐不支持input date怎么處理?
排行榜
