Sistema de notas
Em sistemas reais, você frequentemente precisa processar listas de alunos, produtos ou vendas: calcular médias, filtrar os que atingem uma meta e gerar um ranking. Fazer isso com métodos de array encadeados torna o código conciso e legível, eliminando a necessidade de variáveis temporárias e loops explícitos. Dominar map, filter, sort, reduce e a combinação entre eles é essencial para manipulação de dados em JavaScript moderno.
O PROBLEMA
Calcule média, filtre aprovados/reprovados e faça ranking com métodos encadeados.
EXEMPLO
Ana: 8.00 ✅ João: 5.00 ❌ Ranking: Ana, João
SOBRE O CONCEITO
O exercício incentiva o encadeamento de map para transformar notas, filter para selecionar alunos aprovados, sort para ordenar por desempenho e reduce para calcular médias. Um erro comum é usar reduce sem valor inicial: por exemplo, notas.reduce((acc, nota) => acc + nota) lança um erro se o array estiver vazio, pois o acumulador não é definido. Sempre forneça um valor inicial, como 0. Além disso, sort modifica o array original; para evitar efeitos colaterais, faça uma cópia com [...array] ou array.slice(). O encadeamento cria um pipeline claro: obtenha o array, calcule médias com reduce, filtre aprovados com filter, ordene com sort e exiba o resultado.
RESOLUÇÃO