Estoy tratando de crear una matriz 2D visited para mostrar dónde ya visitó el código en la grid . La forma en que lo tengo ahora es que cada fila visited es una copia superficial. Cambiando el valor en una fila, cambia en todas las filas. ¿Cuál es la mejor manera de inicializar los valores iniciales en visited en este caso?
let grid = [ ["0", "1", "0"], ["1", "0", "1"], ["0", "1", "0"], ] let visited = new Array(grid.length).fill(new Array(grid[0].length).fill(false)) visited[0][1]= true console.log(visited);Producción:
[ [ false, true, false ], [ false, true, false ], [ false, true, false ] ]Puede usar el mapa para crear una nueva matriz para cada fila
let grid = [ ["0", "1", "0"], ["1", "0", "1"], ["0", "1", "0"], ] let visited = Array.from({length: grid.length}, () => Array(grid[0].length).fill(false)) visited[0][1]= true console.log(visited); También puede reemplazar new Array() con Array.from
es decir Array.from({length: grid.length}, () => Array(grid[0].length).fill(false))