Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Estou confuso com o método map

        class Aluno {

            constructor(matricula, nome) {
                this.matricula = matricula;
                this.nome = nome;
            }
        }

        class Prova {

            constructor(aluno, nota) {
                this.aluno = aluno;
                this.nota = nota;
            }
        }

        var avaliacoes = [
            new Prova(new Aluno(1, 'Luana'), 8),
            new Prova(new Aluno(2, 'Cássio'), 6),
            new Prova(new Aluno(3, 'Barney'), 9),
            new Prova(new Aluno(4, 'Bira'), 5)
        ];

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

Ok, entendi que o método filter cria um novo array, filtrando o array de avaliações que tem prova.nota >= 7. Se eu não utilizasse map, o array aprovados teriam 2 objetos Prova e não o nome dos alunos.

Mas não entendi exatamente o que ".map((prova) => prova.aluno.nome);" fez.

1 resposta
solução!

Oi Maurício tudo bem?

O método map() invoca a função callback passada por argumento para cada elemento do Array e devolve um novo Array como resultado.

O que ele faz é para cada prova filtrada ele pega o nome para retornar o nome para gravar no objeto aprovados.

Fazendo com que aprovados seja igual ['Luana','Barney']

Para saber mais veja https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/map

Espero ter ajudado!!!