1
resposta

Falha ao recriar ao código porém não encontro o erro

Ao fazer

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;

for (let i = 0; i < notasGerais.length; i++) {

    for (let j = 0; j < notasGerais[j].length; j++) {

      media += notasGerais[i][j]/notasGerais[i].length;

    }

}


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

Eu estou obtendo no terminal:

18.125
6.041666666666667

Porém o esperado era que retornasse 24 e 8

1 resposta

Boa tarde, Andrea!

Percebi que no seu segundo for você passou no limite do laço, a let j, ao invés da let i, portanto, ao ele pegar o length do j, não estará acessando as arrays de notasGerais!

pois para cada notasGerais[i].length que ele trará, estará pegando o tamanho de cada um dos 3 arrays que você atribuiu no notasGerais, portanto passa o i ao invés do j no limite do segundo for!

Qualquer dúvida recomendo ler novamente o acompanhamento da questão explicando passo a passo do algoritmo.