Olá,
a aula foi muito bem explanada pelo professor, mas fiz uma alternativa do código até usando como base o artigo do Felipe sobre Higher Order Functions, e gostaria de demonstra-lo
// Arquivo procurando-aluno.js
const alunos = ["João", "Juliana", "Ana", "Caio"];
const medias = [10, 8, 7.5, 9];
const listaDeAlunosEMedias = [alunos, medias];
const obterIndiceVetorNomes = (lista) => isNaN(lista[0][0]) ? 0 : 1;
const obterIndiceVetorNotas = (lista) => obterIndiceVetorNomes(lista) === 0 ? 1 : 0;
const obterIndiceNota = (nome, lista) => lista[obterIndiceVetorNomes(lista)].indexOf(nome);
const validarNomeNoVetor = (nome, lista) => lista[obterIndiceVetorNomes(lista)].includes(nome);
const encontrarAlunoENota = ({ nome, lista }) => {
if (validarNomeNoVetor(nome, lista)
) {
const nota = lista[obterIndiceVetorNotas(lista)][obterIndiceNota(nome, lista)];
return `Aluno de nome ${nome} possui nota ${nota}`;
} else {
return `Aluno de nome ${nome} não encontrado`;
}
};
console.log(encontrarAlunoENota({ nome: 'João', lista: listaDeAlunosEMedias }));