陣列迴圈可以用for in迴圈,但如果再迴圈中需要使迴圈變數(i–)時,還是需要使用常規的for迴圈。在for in迴圈中,i–並不能控制i的正常迴圈減少。在迴圈i=1以後,即使再迴圈過程中i–;下一步的迴圈也會直接從i=2開始。
這是在在編寫陣列去重的函式時發現的問題。剛開始使用常規for迴圈時很正常,將它轉為for in迴圈時也正常,但是當陣列中出現連續很多歌相同的值時,for in迴圈的弊端也就開始出現。
function check(str)}}
}/*for(var i=0;ireturn
str;
}var str=[1,1,2,3,54,35,342,1234,52,3,5,3];
var str2=[4,1,2,3,1,2,2,2,2,2,2,2,2,2,2,3,1,2,3,4,2,1];
var str3=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];
console.log(str);
console.log(check(str));//正常
console.log(check(str2));//出現了兩個2
console.log(check(str3));//出現了三個1
將方法轉回常規for迴圈時,該問題解決。 前端的一些小技巧
前端入門筆記,記錄下,萬一有用呢。1.文字框取值 var billname billname val 2.下拉框 var supplier select option selected text 獲取選中的text文字值 var suppliername select option selected...
前端的一些小技巧
1.在 chrome 瀏覽器的 elements 裡面選中某個元素,按 h 可以隱藏該元素。2.谷歌的給列印內容設定樣式 console.log c你 c是 c誰 font size 20px color pink color green color blue 3.在 chrome 的 source...
有關前端的一些小知識
1.在form表單中,如果input標籤的type是checkbox,那麼將會提交選中標籤的value屬性的值 2.jq獲取單選框的內容,把它們name設為一樣,name一樣的為一組,然後判斷它們的checked,如 addrid input name addr checked val 3.js中獲...