Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

275
Vistas
JavaScript saving variable inside recursive function to a global variable

I am writing code to recursively solve a sudoku puzzle. For some reason, I cannot save the solved value to the variable saveGrid, which is initialised globally. console.log(grid) outputs the correct result to the console, but at the bottom, console.log(saveGrid) gives the original unsolved puzzle (sample_grid). saveGrid should only be set once, as console.log(grid) is only called once. Very confused here.

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)

Edit: I found a sort of solution, where saveGrid can only be stored globally as a primitive data type. No clue as to why.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda