2017-03-31 82 views
-2

我是JavaScript新手,我有這個非常簡單的問題。JavaScript for循環數組長度

var counters = []; 
    for (var i = 0; i < 3; i++) { 
     counters.push[i]; 
    } 
    alert(counters.length); 

此代碼預計會提醒3,但真正的結果是0.有人可以請這個給我。我不確定如何詢問這個錯誤。謝謝

對不起,這個問題..我已經修復它。謝謝回答

我不能要求另一quesition但因爲沒有足夠的因緣。但我真正的問題是這樣的

for (var i = 0; i < 2; i++) { 
if (i == 1) {document.write(" <tr class='noBorder' onclick='alert(i)');} 
if (i == 0){ document.write(" <tr class='noBorder' onclick='alert(i)');} 
} 

每當我點擊一排,在2 警報結果它基本上這個問題,但在HTML Passing parameter onclick, in a loop

+1

功能'[]'是用於陣列的存取元件,'()'爲方法調用。 – meagar

回答

2

如果你是推到一個數組,那麼你需要推值,語法爲:的Array.push(值)

正確的方法是:

var counters = []; 
 
    for (var i = 0; i < 3; i++) { 
 
     counters.push(i); 
 
    } 
 
    alert(counters.length);

1
counters.push[i]; 

應該是

counters.push(i); 

counters[i] = i; 

()用於方法調用。 push是一種可用於數組類型的所有對象的方法,因此在這種情況下,應該使用()將值添加到數組中。

[]用於訪問對象上的(命名的動態)屬性。

var obj = { 
    a : 10, 
    c : function() { 
     return 20; 
    } 
}; 

在上述的用例來訪問的ab的值,將使用.[]訪問該對象的屬性。

obj.a || obj['a']; 
obj.b() || obj['b'](); 

由於屬性c是一個函數,你會使用[]第一訪問屬性,然後調用使用()