我簡化了代碼以使它更容易,但是我在一個跟蹤玩家遊戲塊的網格上做了一個遊戲。當一個數組發生變化時,將它推到一個數組歷史數組中
如果它是一個9x9網格,數組將有9個索引,每個索引包含9個索引,所以我可以將數組[x] [y]指向網格上的一個點。每一回合我都想將這個位置存儲在一個網格歷史數組中。
我試着每次都使用array.push,但是在1轉之後,如果我查看歷史記錄,所有網格都與當前網格相同。我做了一個簡單的jsfiddle證明 - 下面這裏也https://jsfiddle.net/3rmwnuv5/
代碼:
var stones = [['clear', 'clear', 'clear'], ['clear', 'clear', 'clear'], ['clear', 'clear', 'clear']]
var stoneHistory = [];
stoneHistory.push(stones);
stones[1][1] = 'black';
stoneHistory.push(stones);
stones[0][2] = 'white';
stoneHistory.push(stones);
console.log(stoneHistory);