我正在查看一个数组问题,因为我无法理解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]的第一部分正在传递和打印,第二部分会发生什么?
***对不起总新手我只是在寻找更好的阵列解释。谢谢你!
答案 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