freeCodeCamp/guide/spanish/certifications/javascript-algorithms-and-d.../debugging/use-caution-when-reinitiali.../index.md

1.3 KiB

title localeTitle
Use Caution When Reinitializing Variables Inside a Loop Tenga cuidado al reinicializar variables dentro de un bucle

Tenga cuidado al reinicializar variables dentro de un bucle

  • Este desafío debe resolverse redefiniendo el alcance de la row[] .
  • A continuación se muestra un ejemplo de la matriz deseada.
[ 
 [0][0], 
 [0][0], 
 [0][0] 
 ] 
  • Sin embargo, la matriz actual, que se ve a continuación, está lejos de la matriz deseada
[ 
 [0][0][0][0][0][0], 
 [0][0][0][0][0][0], 
 [0][0][0][0][0][0] 
 ] 
  • Este error se produce debido a que la matriz row[] se declara como una variable global fuera del bucle anidado.
  • Sin embargo, para rellenar la matriz correctamente, la row[] debe restablecerse después de cada iteración del bucle externo.

Solución

function zeroArray(m, n) { 
  let newArray = []; 
  for (let i = 0; i < m; i++) { 
     let row = []; /* <-----  row has been declared inside the outer loop. 
     Now a new row will be initialised during each iteration of the outer loop allowing 
     for the desired matrix. */ 
    for (let j = 0; j < n; j++) { 
 
      row.push(0); 
    } 
    newArray.push(row); 
  } 
  return newArray; 
 } 
 let matrix = zeroArray(3, 2); 
 console.log(matrix);