Considere el siguiente código. Quiero cambiar solo el segundo valor de los elementos en la segunda lista en matrix . El problema es que de alguna manera todos los elementos se modifican. ¿Cómo puede ser esto?
let matrix = Array(2).fill(Array(2).fill(0)); // [[0, 0], [0, 0]] matrix[1][1] = 8 console.log(matrix) // [[0, 8], [0, 8]]Esto se debe a que todos los elementos dentro de matrix apuntan o hacen referencia a la misma lista. Al querer cambiar una instancia de la lista, las cambia todas porque de ese modo cambia la lista a la que se apunta. Para evitar esto, cree una matriz anidada vacía usando bucles for en su lugar:
let matr = []; for (let i = 0; i < 2; i++) { matr.push(Array(2).fill(0)) } matr[1][1] = 8 console.log(matr)