Estoy escribiendo código para resolver recursivamente un sudoku. Por alguna razón, no puedo guardar el valor resuelto en la variable saveGrid, que se inicializa globalmente. console.log(grid) envía el resultado correcto a la consola, pero en la parte inferior, console.log(saveGrid) da el rompecabezas original sin resolver (sample_grid). saveGrid solo debe establecerse una vez, ya que console.log(grid) solo se llama una vez. Muy confundido aquí.
var saveGrid; const solveGrid = function(grid) { for (let row = 0; row < 9; row++) { for (let column = 0; column < 9; column++) { if (grid[row][column] === 0) { for (let numberToTry = 1; numberToTry < 10; numberToTry++) { if (isValidPlacement(grid, numberToTry, row, column)) { grid[row][column] = numberToTry; solveGrid(grid) grid[row][column] = 0; } } return; } } } console.log(grid) saveGrid = grid; } solveGrid(sample_grid) console.log(saveGrid)Editar: encontré una especie de solución, donde saveGrid solo se puede almacenar globalmente como un tipo de datos primitivo. Ni idea de por qué.