, И договорились, что это лучше реализовать как статический

лизую игру Джона Конвея о жизни, но у меня странная проблема. Вот короткая версия, если код доставляет мне проблемы:

let lifeMap = [
  [true, false, false],
  [false, false, false],
  [false, false, false]
];
let oldLifeMap = lifeMap.slice();
for (let row = 0; row < lifeMap.length; row++) {
  for (let val = 0; val < lifeMap[row].length; val++) {
    let bool = lifeMap[row][val];
    let newBool = false; // here is where I would determine if cell is alive/dead
    lifeMap[row][val] = newBool;
    if (row === 0 && val === 0) console.log("at (0,0)", oldLifeMap[0][0]);
  }
}

В ответ на этот код JavaScript печатаетat (0,0) false, Мне нужно, чтобы остатьсяtrue пока не начнется следующее поколение.

Я думал делатьlet oldLifeMap = lifeMap.slice() бы это исправить, но это не так, и я не уверен, почему. (Не должно этокопия 2d массив, а не создать вторую ссылку на него?)

Во всяком случае, что здесь происходит, и как мне успешно сделать фактическую копиюlifeMap Вот?

Ответы на вопрос(0)

Ваш ответ на вопрос