了解数组语法

时间:2014-07-09 19:59:18

标签: javascript arrays

我正在查看一个数组问题,因为我无法理解for循环中值的传递方式:

var a = [ [ 1, 2 ], [ 3, 4] ];
a[ 1 ][ 1 ] = 5;
for ( var row = 0; row < a.length; row++ )
{
for ( var col = 0; col < a[ 0 ].length; col++ )
document.write( a[ row ][ col ] + " " );
document.write( "<br />" );

运行程序我看到: 1 2 3 5

[[1,2],[3,4]]是两个独立的数组还是一个属于var a的数组?我可以看到数组[[1,2]的第一部分正在传递和打印,第二部分会发生什么?

***对不起总新手我只是在寻找更好的阵列解释。谢谢你!

2 个答案:

答案 0 :(得分:2)

这样看:

var a = [[1,2],[3,4]];

//means
a[0] = [1,2]
a[1] = [3,4]

//so
a[0][0] = 1 //first element in the first element
a[1][0] = 3 //first element in the second element
a[1][1] = 4 //second element in the second element

等等。

在第二个声明中,您更改了第二个元素的第二个元素的值。

答案 1 :(得分:0)

那将是一个锯齿状的阵列。在视觉上,您可以将其视为:

[
    [1, 2],
    [3, 4]
]

你的第二个语句a[1][1] = 5改变了第二个数组的第二个元素(因为数组是零索引的)。

最后一个块循环遍历内部数组,然后遍历这些数组的元素,所以如果你像上面那样读取数组,那么你得到的输出是:

1 2 3 5