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

Arrow Function

Boa tarde, estou com uma dúvida e gostaria de um auxílio

if (checklist.filter(attachment => attachment.etapa == validateEtapa()).length > 0) {

Nesta linha checklist .filter recebe uma função chamada attachments e se a etapa tiver o nome attachment é true se nao false ?

Vi umas documentações porém não consegui entender muito este Arrow function.

Se alguém puder me dar uma ajuda agradeço pois não entendi direito está linha

2 respostas

Olá, Nicholas! Tudo bem?

A função filter recebe uma função a ser executada para cada item da lista (chamamos de callback).

Então, a função callback é:

attachment => attachment.etapa == validateEtapa().length > 0

Em que, por partes:

  • Temos o parâmetro: attachment, attachment é passado para a função em tempo de execução pelo próprio filter, nós apenas dizemos que o nome é attachment para podermos referenciar essa variável dentro da função.
  • A => é parte da sintaxe da arrow function, indica que o que vem em seguida é o retorno.
  • attachment.etapa == validadeEtapa() é o retorno da função callback. O filter espera true ou false como retorno, para cada item (que é chamado de attachment) essa verificação é executada, e se o retorno for verdadeiro, o item é retornado, se for false o item é filtrado, removido da nova array.

Fica mais claro se escrevermos por extenso:

function filtragem(attachment) {
    return attachment.etapa == validadeEtapa(); // retorna true ou false
}

const checklistFiltrada = checklist.filter(filtragem) // passamos a função e o filter executa ela pra gente
const checklistFiltradaTemItens = checklistFiltrada > 0 // retorna true ou false

if (checklistFiltradaTemItens) {

Espero que isso ajude!

solução!

no caso nao tinha entendido direito o que o => eo == estavam fazendo na linha e também o length > 0

muito obrigado, por extenso ficou melhor mesmo.