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

Arrow Functions

No código abaixo, o parâmetro das funções de callback de map e filter está sem o parênteses. Isso é permitido apenas quando 1 parâmetro é utilizado?

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

Quando incluo um segundo parâmetro (index), como no código abaixo, o erro "Uncaught ReferenceError: item is not defined" é exibido no console.

let aprovados = avaliacoes
  .filter(item => item._nota >= 7)
  .map(item, index => item._aluno._nome + ' ' + index);
4 respostas

Boa tarde Roger!

Quando só tem um parâmetro, não é necessário parênteses. Quando se tem uma única instrução, não é necessário chaves.

Quando você inclui o segundo parâmetro, precisará usar parênteses. Ficará assim:

map((item, index) => item._aluno._nome + ' ' + index);

Feliz natal, meu aluno!

Obrigado, professor.

Posso estar enganado, mas o parênteses ser desnecessário quando se tem apenas um parâmetro não foi explicado anteriormente (pelo menos, até aqui).

Não seria válido incluir essa informação na transcrição da aula sobre arrow functions?

Feliz Natal!! =)

solução!

Tão válido que já alterei!

https://cursos.alura.com.br/course/javascript-es6-orientacao-a-objetos-parte-1/task/23155

Configura a resposta do instrutor. Mostro primeiro com parênteses e em seguida explico que ele pode ser omitido quando há um parâmetro apenas.

Sucesso e bom estudo meu aluno!

Show!