声明中带索引的Javascript数组

时间:2013-11-21 10:19:48

标签: javascript arrays

我正在运行一个js代码,并且在某些部分中有一个数组的定义,我没有得到它意味着什么,它看起来像这样:

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

我不明白为什么在第二行有一个数组的索引,它是一个二维数组吗?如果你能帮助我,我将不胜感激。
谢谢

3 个答案:

答案 0 :(得分:5)

var myArray = new Array();

创建一个数组。

myArray[myNum] = new Array();

myArray的{​​{1}}索引中创建一个数组。

myNum

myArray[myNum].push(value1); 存储到valuea1中存储的数组(添加最后一个元素,在本例中为0 - 索引)。

是的,你的假设是正确的 - 在执行三个语句后,会创建一个二维数组,看起来像这样 -

myArray[myNum]

要访问[....., [value1], ......] // the inner array is stored at "myNum" index ,您现在可以 -

value1

请参阅doc for push

答案 1 :(得分: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.

答案 2 :(得分: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)这会将value1推送到索引“myNum”的myArray中。让我们再假设myNum = 5和value1 = 1,2,3;

所以

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

会给出

myArray=[[1,2,3]]

DEMO IN A FIDDLE