我正在尝试修改二维数组中的一个值。但是,根据数组的构造方式,我发现了一些奇怪的行为。
matrix 和 matrix2 之间的唯一区别是它们的构造方式。但是,当我更改 [1][1] 值时,matrix2 中的所有 [x][1] 值都会更改:
矩阵:
[ [ 0, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 0 ] ]
矩阵2(意外):
[ [ 0, 1, 0 ], [ 0, 1, 0 ], [ 0, 1, 0 ] ]
代码:
var row = [0,0,0];
var matrix = [[0,0,0],[0,0,0],[0,0,0]];
var matrix2 = [row, row, row];
console.log(matrix);
console.log(matrix2);
matrix[1][1] = 1;
matrix2[1][1] = 1;
console.log(matrix);
console.log(matrix2);
谁能解释发生了什么?