2011-03-02 22 views
2

根據教程中,我讀,如果你想創建一個表有5列3行表示這樣的數據...JavaScript的數組

45 4 34 99 56 
3 23 99 43 2 
1 1 0 43 67 

...它說,你可以使用以下陣列

var table = new Array(5) 

table[0] = [45, 4, 34, 99, 56]; 
table[1] = [3, 23, 99, 43, 2]; 
table[2] = [1, 1, 0, 43, 67]; 

但我本來期望它是這樣

var table = new Array(3) 
table[0] = [45, 4, 34, 99, 56]; 
table[1] = [3, 23, 99, 43, 2]; 
table[2] = [1, 1, 0 43, 67] 

如果,在本教程中,var table最初被聲明爲一個包含5個元素的數組,然後第一個(table [0]),second(table [1])和third(table [2])被數據填充,其他兩個元素會發生什麼最初使用新的Array(5)在數組中設置。爲什麼你需要使用5?

+0

這是一個在線教程嗎?如果是的話,你可以發佈一個鏈接? – JaredPar 2011-03-02 01:05:00

+2

獲得更好的教程 - 你真的不需要在Javascript中使用'new Array(3)'。總是使用'var table = [];' - 預先分配大小並沒有什麼好處。 – Pointy 2011-03-02 01:05:35

+0

@JaredPar它來自一本書,叫做JavaScript cookbook – mjmitche 2011-03-02 01:13:03

回答

7

你是對的,這聽起來像教程中的例子是錯誤的。

+0

是的,聽起來就像是一個錯字......再加上我會用JSON表示來定義這樣一個表格,這樣就更容易閱讀了。 – Zoidberg 2011-03-02 01:06:43

0

這很可能是本教程中的一個錯字。

new Array(5)基本上創建一個包含5個元素的數組對象,初始化爲undefined。當你最初設置的數組比你所需要的小時,JavaScript足夠聰明來「調整」數組對象的大小。因此,在設置var table = new Array(3)之後,仍然可以向其添加第十個元素,例如table[9] = [1, 2, 3, 4, 5];

+0

即使你只添加了6個元素,也要注意'table.length'現在是'10'。 – 2011-03-02 01:32:23