for (expr1; expr2; expr3)
{statement}
第一個(gè)表示式只在循環(huán)開(kāi)始前執(zhí)行一次并且無(wú)條件執(zhí)行侦另。
第二個(gè)表示式從第一次執(zhí)行循環(huán)開(kāi)始就在循環(huán)開(kāi)始前運(yùn)行做一次判斷該表達(dá)式布爾值,是真就執(zhí)行循環(huán)多矮,是假就中斷蟹略。如果第一次循環(huán)就是假登失,直接不執(zhí)行for體。
第三個(gè)表達(dá)式從第一次執(zhí)行循環(huán)開(kāi)始就在每次循環(huán)結(jié)束后執(zhí)行一次挖炬。
刪除數(shù)組
for(var i = 0; i < array.length; i++) {
if(array[i].length == 0) {
array.splice(i, 1);
}
}
用這個(gè)方法揽浙,每次刪除完數(shù)組元素之后,數(shù)組的下標(biāo)都發(fā)生了變化意敛,變化之后的數(shù)組下標(biāo)和循環(huán)次數(shù)i不對(duì)應(yīng)馅巷。所以最后得出的結(jié)果是錯(cuò)的。
解決方法:
用倒序的方式進(jìn)行刪除元素
for(var i = array.length-1; i >= 0; i--) {
if(array[i].length == 0) {
array.splice(i, 1);
}
}