1. 程式人生 > >關於陣列的for迴圈與for...in迴圈的使用區別

關於陣列的for迴圈與for...in迴圈的使用區別

今天做了好幾個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...