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

Dúvida no uso .filter e .map

Olá pessoal!

Estou com uma dúvida nesse trecho do código:

let aprovados = avaliacoes
    .filter(prova => prova.nota >= 7)
    .map(prova => prova.aluno.nome);

console.log(aprovados);

Pelo que entendi, o let aprovados vai receber o array das avaliacoes, filtrar (filter) pelas notas iguais ou maiores que 7 e aí mapear (map) pra exibir somente o nome dos alunos. Mas não consegui entender como esse bloco está se comportando pois o filter e map não estão inseridos num bloco de códigos da let aprovados. Também fiz o teste de usar o aprovados.filter/aprovados.map e avaliacoes.filter/avaliacoes.map mas em nenhum dos casos, o código se comportou da forma como está se comportando.

3 respostas

Oi Gessica, map e filter são uns dos diversos métodos para Array em JavaScript

Vc pode ver uma lista de métodos de array em JavaScript Array Reference

Tem esse ótimo artigo Manipulação de array com map, filter e reduce, da Alura, escrito por Felipe Nascimento

Olá Luis, tudo bem?

Muito obrigada pelas recomendações.

Li os artigos, mas minha dúvida ainda não foi sanada rs.

solução!

Ah, consegui entender a aplicação dos métodos.

Seria o equivalente a:

let aprovados = avaliacoes.filter(prova => prova.nota >= 7).map(prova => prova.aluno.nome);

console.log(aprovados);

Ou num jeito mais detalhado que me ajudou a facilitar o entendimento:

let aprovados = avaliacoes.filter(prova => prova.nota >= 7); 

let nomeAprovados = aprovados.map(prova => prova.aluno.nome);

console.log(nomeAprovados);

A quebra de linha do exercício me confundiu um pouco (embora agora que eu tenha entendido, perceba que ela ajudou a manter a organização).

Muito obrigada!