Я работаю над созданием простой версии игры жизни Конвея в ReactJS.
Я хочу изменить массив значений 2d и вернуть новый массив значений с одним измененным элементом.
У меня сформирован массив 2D и сохранен как состояние, подобное этому
const colArr = Array(HEIGHT).fill(0);
const rowArr = Array(WIDTH).fill(0);
const boardArr = colArr.map(columns => rowArr.map(rows => 0));
...
const [boardState, setBoardState] = useState(boardArr);
При нажатии я хочу вернуть новый массив с конкретным значением, измененным на 1. Однако, когда я пытаюсь это сделать
setBoardState([...boardState, boardState[x][y] = 1])
Массив изменяется, как я хочу, но он также добавляет 1 в конце следующим образом:
[ [1, 0, 0],
[0, 0, 0],
[0, 0, 0], 1],
В настоящее время это работает, если я использую .slice (), чтобы удалить последний элемент, но я не могу понять, почему этот элемент модифицируетвложенный массив и добавление в конец.