Oi, tudo bem?
No desafio do vídeo, as médias estão guardadas em uma lista, e elas já estão calculadas para cada um dos alunos da outra lista. Você se refere a uma situação onde temos todas as notas de todos os alunos, e queremos calcular a média de cada um, correto?
Se for esse o caso, poderíamos ter o seguinte código:
const alunos = ["João", "Juliana", "Ana", "Caio"];
const notas = [
[10, 8, 7.5, 9],
[8, 8, 7, 7],
[10, 10, 10, 10],
[10, 9, 8, 7],
];
Neste código, a lista notas
contém várias listas, uma guardando a nota de cada aluno. Por exemplo, a "Ana", que está na posição 2 da lista alunos
, possui as notas da lista [10, 10, 10, 10]
, que está na posição 2 da lista de notas
.
Se quisermos imprimir a média de cada aluno nesse cenário, podemos utilizar o seguinte código:
for (let i = 0; i < alunos.length; i++) { // vamos percorrer o array de alunos
const aluno = alunos[i]; // salvamos o aluno da vez na constante `aluno`
const notasDoAluno = notas[i]; // o array de notas do aluno está guardado dentro do array `notas`. Ou seja, `notas[i]` é o array de notas do aluno da posição `i`
let somaDasNotas = 0;
for (let j = 0; j < notasDoAluno.length; j++) { // agora, vamos percorrer as notas desse aluno para calcular sua média. Criei a variável `j` para ficar diferente da variável `i`
somaDasNotas+= notasDoAluno[j];
}
const mediaDoAluno = somaDasNotas / notasDoAluno.length;
console.log(`O(a) aluno(a) ${aluno} tem média ${mediaDoAluno}.`);
}
Note que eu utilizei um bloco for
dentro de outro para ser capaz de percorrer uma lista dentro de outra. Você pode ver mais sobre isso na atividade Loops em matrizes.
Qualquer dúvida só chamar!