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!