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!