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

1.3 KiB
Raw Blame History

title localeTitle
Use Caution When Reinitializing Variables Inside a Loop Tenha cuidado ao reinicializar variáveis dentro de um loop

Tenha cuidado ao reinicializar variáveis dentro de um loop

  • Esse desafio deve ser resolvido redefinindo o escopo da row[] .
  • Abaixo está um exemplo da matriz desejada.
[ 
 [0][0], 
 [0][0], 
 [0][0] 
 ] 
  • No entanto, a matriz atual - vista abaixo - está longe da matriz desejada
[ 
 [0][0][0][0][0][0], 
 [0][0][0][0][0][0], 
 [0][0][0][0][0][0] 
 ] 
  • Este erro ocorre devido à matriz row[] sendo declarada como uma variável global fora do loop aninhado.
  • No entanto, para preencher a matriz corretamente, a matriz row[] deve ser redefinida após cada iteração do loop externo.

Solução

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);