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

ForEach em matriz

Usando o exemplo dado no próprio material sobre cálculo de média a partir de matriz usando for, como poderia fazer o mesmo usando forEach?

4 respostas
solução!

Você poderia fazer como no código abaixo. arrayDeNotas vai receber cada um dos arrays contidos em notasGerais. E a partir de cada um desses arrays chama o forEach novamente para pegar cada uma das notas e calcular a média.

No caso utilizei 2 arrow function, uma em cada forEach(), vc até poderia utilizar funções externas, mas ainda assim, na minha opinião, fica meio confuso, difícil de ler e entender o que tá acontecendo. Acho mais interessante usar o for mesmo.

const notas1 = [10, 6.5, 8 ,7.5]
const notas2 = [9, 6, 6]
const notas3 = [8.5, 9.5] 
const notasGerais = [notas1,notas2,notas3]
let media = 0

notasGerais.forEach(arrayDeNotas => arrayDeNotas.forEach(nota =>
  media += nota/arrayDeNotas.length
));

media = media/notasGerais.length
console.log(media)

Muito obrigada pela ajuda, Rodolpho!!! Consegui compreender bem!

Este código para mim está dando "NotasGerais.forEach is not a function", consegui achar o problema, as "NotasGerais" deveriam ter sido declaradas com Let

Fala Gustavo, não sei se tu colocou no código como descreveu, mas notasGerais inicia com n minúsculo. Isso poderia ocasionar no erro que vc falou. Não tem problema ser const pois notasGerais não será reatribuida, não precisa ser let. Testei aqui o código acima e tá dando certo.