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

Construção da arrow function

Olá

Dado o código abaixo:

class Aluno {

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


class Prova {

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


let 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)
];

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

Na arrow function para se obter o nome dos aprovados o termo prova é o nome da função correto?

Como a função prova acessa o atributo nota?

Obrigado

1 resposta
solução!

Marcus,

Você está "iterando" a lista (array) "avaliações" que é uma lista de Prova;

A iteração (cada item lido do array), o prova será o item do array que a função (filter ou map) vai receber nesse caso.

Caso fosse necessário obter as notas abaixo de 6, mas em vez do nome, retornar a matricula do aluno, poderia ser escrito da seguinte forma:

let reprovados = avaliacoes
    .filter(p => p.nota < 6)
    .map(outroNomeQualquer => outroNomeQualquer.aluno.matricula);