關於陣列的for迴圈與for...in迴圈的使用區別
阿新 • • 發佈:2019-01-08
今天做了好幾個Demo,都碰到了要迴圈陣列的情況,但是有幾次用for或者for...in都出現了問題,下面來解析一下.
1.陣列
<span style="font-size:14px;"><strong>var guns=new Array();
guns[0]=P90;
guns[3]=M16;
guns[5]=AK47;</strong>
</span>
2.for 迴圈
<strong>for(var i=0;i<guns.length;i++){ document.write(guns[i]); }</strong>
這段的結果是:P90,undefined,undefined,M16,undefined,AK47
3.for...in迴圈
for(var i in guns){
document.write(guns[i]);
}
這段的結果是:P90,M16,AK47
4.結論與分析
for...in迴圈是迴圈物件的可列舉屬性,不可列舉的都不顯示,而我們的for迴圈,強制i從0到guns.length自增,必須要返回即使不存在的屬性的值,結果自然是undefined.陣列是物件,屬性是0,1,2,3...