0
我在用Javascript和HTML5 Canvas構建Conway的生活遊戲。 這裏的代碼是gameOfLife對象的範圍內:無法解決爲什麼數組更新時不應該這樣做?
this.cells = [];
this.nextCellState = [];
填充this.cells
我的細胞對象後,我填充this.nextCellState
像這樣:
this.nextCellState = this.nextCellState.concat(this.cells);
在鼠標點擊,相應的單元格對象屬性的IsAlive開啓真:
function clickAlive(x, y) {
for (var i in this.cells) {
if (x.between(this.cells[i].x, this.cells[i].x + cellsize) && y.between(this.cells[i].y, this.cells[i].y + cellsize)) {
this.cells[i].isAlive = true;
console.log('Breakpoint');
}
}
}
的問題是,在看看cells
和nextCellState
數組在斷點處,他們都點擊單元格激活到true
。
這是什麼造成的?
不要使用'爲in'循環遍歷數組。使用普通的'for'循環。它不會解決你的問題,但這是一個設計建議 – Ian 2013-04-24 18:10:29