Tem algum metodo do array que poderia realizar a mesma funcionalidade de uma maneira mais simples?
const alunos = ['Ana', 'Marcos', 'Maria', 'Mauro'];
const medias = [7, 4.5, 8, 7.5];
// Arrays que recebem a situação de aprovados ou reprovados dos alunos
let aprovados = [];
let reprovados = [];
// Criando uma função que como condição verifica com base no valor da media se está aprovado ou reprovado
const condicaoAprovado = (media) => media >= 7;
const condicaoReprovado = (media) => media < 7;
// Prepara um novo array com os valores de aluno aprovados e reprovados.
const aprovaReprova = (condicao) => {
// Filter recebe uma função de call back que recebe o elemento(aluno) como parametro e opcional o índice
// os parametros nao podem estar fora de ordem como não usamos o primeiro trocamos por _
// o retorno esperado pelo filer é true ou false, sabendo que quando true deve passar o resultado do elemento para um novo array
// chamamos a função definida nas condições que recebem como parametro o valor que se encontra no array medias para realizar a verificação condicional
return alunos.filter((_, index) => condicao(medias[index]));
}
// Verifica quais alunos foram aprovados
function verificarAprovados() {
aprovados = aprovaReprova(condicaoAprovado);
}
// Verifica quais alunos foram reprovados
function verificarReprovados() {
reprovados = aprovaReprova(condicaoReprovado);
}
// Chama as funções para popular os arrays
verificarAprovados();
verificarReprovados();
// Exibe no console o resultado
console.log(`Aprovados: ${aprovados}, Reprovados: ${reprovados}`);