2D 配列の 1 つの値を変更しようとしています。ただし、配列の構築方法に基づいて、奇妙な動作を見つけています。
matrix と matrix2 の唯一の違いは、その構築方法です。ただし、[1][1] 値を変更すると、matrix2 のすべての [x][1] 値が変更されます。
マトリックス:
[ [ 0, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 0 ] ]
Matrix2 (予期しない):
[ [ 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);
誰が何が起こっているのか説明できますか?