Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida na exibição do Array Bidimensional no Exercício 5 - Aula 2.

Achei complicado entender a lógica lendo apenas o enunciado, então fui olhar a resolução no GitHub e entendi, no entanto, não entendi a última linha, que executa a exibição em linha...

let matriz = [];
let valorInicial = 1;

for (let i = 0; i < 3; i++) {
  let linha = [];
  for (let j = 0; j < 3; j++) {
    linha.push(valorInicial++);
  }
  matriz.push(linha);
}

console.log('Matriz de duas dimensões:');
console.log(matriz);
matriz.forEach(row => console.log(row)); // visualização em linhas e colunas

Alguém consegue me explicar a lógica desse trecho matriz.forEach(row => console.log(row));? Pelo que sei é um forEach que percorre cada item do Array "Matriz" e executa uma Arrow function com nome de "row", mas não entendi como isso funciona... rsrsrs

3 respostas

Exatamente como você disse, dentro do forEach existe uma arrow funciton a qual tem parâmetro "row" e dentro do escopo da função é o console log! Então, a cada linha da matriz, será executada o console.log(row).

O parâmetro "row" é só um nome para representar cada elemento (linha da matriz) durante a iteração da matriz no método forEach.

Então só pra ver se eu entendi... Basicamente esse trecho de código está imprimindo cada elemento da matriz individualmente no console fazendo assim com que aparece no formato de coluna?

solução!

Em resumo: esse último trecho do código irá executar 3 vezes. Uma para cada linha da matriz.

O console.log(row) será executado 3 vezes pois cada linha foi adicionada a matriz no trecho: matriz.push(linha);

Debug / Passo a passo:

// Primeira impressão do laço "forEach": [1, 2, 3]
// Segunda impressão do laço "forEach": [4, 5, 6]
// Terceira impressão do laço "forEach": [7, 8, 9]

Consegui explicar melhor? Caso não, entre em contato que tento te explicar melhor.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software