2013-11-21 69 views
0

我運行一個JS代碼,並在它的某些部分指標有一個數組的定義,我不明白這是什麼意思,它看起來像這樣:
Javascript數組在聲明

var myArray = new Array(); 
myArray[myNum] = new Array(); 
myArray[myNum].push(value1); 

我不明白爲什麼在第二行有數組的索引,它是二維數組嗎?如果你能幫助我,我會很感激。
謝謝

回答

5
var myArray = new Array(); 

創建一個數組。

myArray[myNum] = new Array(); 

創建在myArraymyNum索引的陣列。

myArray[myNum].push(value1); 

商店valuea1到陣列(在最後添加元素,在這種情況下,在第0索引)存儲在myArray[myNum]

是的,你的假設是正確的 - 一個二維數組創建的三個語句的執行,這看起來是這樣的後 -

[....., [value1], ......] // the inner array is stored at "myNum" index 

要訪問value1,你現在可以做的 -

myArray[myNum][0]; 

查看doc for push

1

此代碼只是在索引myNum處創建一個數組。讓我們打破代碼。

var myArray = new Array(); 
//Create a new array 
myArray[myNum] = new Array(); 
//At index 'myNum' which is a variable presumably holding an index - create a new array 
myArray[myNum].push(value1); 
//push variable `value1` to the new array at index myNum of myArray. 
1

讓我試着解釋你的代碼....

說明:

var myArray = new Array(); // (1) 
myArray[myNum] = new Array(); // (2) 
myArray[myNum].push(value1); // (3) 

(1)這將創建一個新的空數組。它可能是1D,2D,3D。目前它沒有任何東西。此時,你應該陣列看起來像這樣..

myArray= []; 

(2)這在指數「myNum的」「myArray的」創建另一個空數組。讓我們假設myNum = 5;

所以

myArray[5] = new Array(); 

會給

myArray =[[]]; 

(3)這將推動值1到myArray的索引「myNum的」。讓我們再次假設myNum = 5和value1 = 1,2,3;

所以

myArray[5].push(1,2,3); 

會給

myArray=[[1,2,3]] 

DEMO IN A FIDDLE