Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Função filter

const nomes = ['Ana', 'Maria', 'Marcos', 'João'];
const notas = [7, 4.5, 8, 7.5];

const reprovados = nomes.filter((aluno, indice) => notas[indice] < 5);

console.log(`Reprovados: ${reprovados}`);

Olá,

não consegui entender muito bem essa função filter, nem como essa arrow function retorna um booleano.

2 respostas
solução!

Irene, eu recomendo vc ver o artigo do Felipe Nascimento sobre "Manipulação de array com map, filter e reduce".

Vai ser muito útil vc aprender usar map, filter e reduce

Sobre o exemplo

// neste exemplo os nomes estão alinhados com as notas
const nomes = ['Ana', 'Maria', 'Marcos', 'João'];
const notas =  [  7,    4.5,      8,      7.5];

// Se quisermos saber quem tirou 8 ou mais
// apenas olhando, podemos dizer q foi o Marcos
// Pois o 8 em notas tem o mesmo índice de Marcos em nome
console.log(nomes[2], notas[2])
// Marcos, 8

// como podemos fazer isso com filter pegando o índice e pesquisando em notas
// O filter cria um outro array com os critérios do filtro
const alunosComNotasMaiorOuIgualaOito = nomes.filter((naoUsado, indice) => notas[indice] >= 8);

console.log(alunosComNotasMaiorOuIgualaOito);
// ['Marcos']


// Este outro exemplo com filter eu não preciso do índice
const nomeIgualaAna = nomes.filter(nome => nome == 'Ana')

console.log(nomeIgualaAna)
//['Ana']

Muito obrigada Luiz! Agora ficou claro =D