尝试修改代表井字棋板的二维数组时,出现奇怪的行为。所有数组的第一个元素被修改而不是一个。修改JavaScript多维数组
// BEFORE: squares = [[null,null,null],[null,null,null],[null,null,null]]
squares[0][0] = 'X';
// AFTER: squares = [["X",null,null],["X",null,null],["X",null,null]]
我能用下面的代码解决问题,但我很好奇为什么发生这种情况。这里是工作代码:
let rowToModify = squares[yCoord].slice();
rowToModify[xCoord] = 'X';
squares[yCoord] = rowToModify;
工作得很好 - https://jsfiddle.net/abhitalks/51110618/ – Abhitalks
否则'正方形[0] [0] =' X';现在它可以修改所有的第一个元素。你可能做错了什么。 – Hannan