JavaScript: por qué Array.prototype.fill en realidad llena un "puntero" de objeto al llenar algo como 'nuevo Object ()'
Estaba tratando de usar el método Array.prototype.fill para crear un n x nMatriz 2D pero el código tenía errores y eventualmente descubrí que todas las matrices en el interior son en realidad"punteros" a la misma matriz.
Muestra:
var matrix = new Array(10).fill(new Array(10), 0);
Pensé conceptualmente que esto podría crear una matriz 2D de 10 x 10. Sin embargo, si asigno valor a la matriz [0] [0]:
matrix[0][0] = 1;
El resultado en realidad será:
matrix[0][0] === 1;
matrix[1][0] === 1;
matrix[2][0] === 1;
matrix[3][0] === 1;
matrix[4][0] === 1;
matrix[5][0] === 1;
matrix[6][0] === 1;
matrix[7][0] === 1;
matrix[8][0] === 1;
matrix[9][0] === 1;
y cada vez que intente asignar un valor a cualquiera de las posiciones en la matriz, todas las posiciones correspondientes en otras sub-matrices también cambiarán.
Me pregunto por qué está sucediendo.
¿Alguien puede responder a esta pregunta de rascarse la cabeza?