2012-12-20 83 views
0

當我嘗試將元素推送到JavaScript數組中時,它不起作用。 這是我能想到的最簡單的樣本。 爲什麼不能工作?javascript push in a loop

<!DOCTYPE html> 
    <html> 
    <body> 

    <script> 
    var i; 
    var mycars = new Array(); 

    for(i=1;i<=10;i++){ 
     mycars.push[ i.toString()+"-" ]; 
    } 

    alert(mycars.join("")); 

    </script> 

    </body> 
    </html> 

回答

3

push是一個函數。你調用函數與(),不[]

mycars.push(i.toString()+"-"); 
// here ---^  and here ----^ 

在哪裏你可能得到困惑的是,你可以添加到一個數組,而無需使用push,只是將其分配給數組元素,即使該元素尚不存在。因此,例如,你的循環可能會是這樣的:

for(i=1;i<=10;i++){ 
    mycars[mycars.length] = i.toString()+"-"; 
} 

在那裏,因爲我指的是一個數組元素(mycars[mycars.length]),而不是調用一個函數,我用[]

附註:不要var mycars = new Array();,只需寫var mycars = [];。它做同樣的事情,但更簡潔,不容易產生副作用。

+1

如果我對這種速度不瞭解的話,我會說你是Jon Skeet。 –

+0

@JustinNiessner:LOL –

+0

當然。謝謝。 – Shawn