我正在运行一个js代码,并且在某些部分中有一个数组的定义,我没有得到它意味着什么,它看起来像这样:
var myArray = new Array();
myArray[myNum] = new Array();
myArray[myNum].push(value1);
我不明白为什么在第二行有一个数组的索引,它是一个二维数组吗?如果你能帮助我,我将不胜感激。
谢谢
答案 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]]