Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

97
Visualizações
Estoy tratando de simplificar mis múltiples llamadas al método de matriz en una declaración if o algo mucho más simple basado en una condición

Me gustaría simplificar mi código y tener un método de filtrado de matriz y luego asignar las Alertas const basadas en las condiciones correspondientes, en lugar de 5 métodos de filtrado de matriz. ¿Quizás una declaración if o algo similar haría el truco?

 const pendingAlerts = array.filter((a) => a.approval_status === approvalStatuses.pending && !a.canceled_at).sort(sortCommunicationsByDateRule); const deniedAlerts = array.filter((a) => a.approval_status === approvalStatuses.denied && !a.canceled_at).sort(sortCommunicationsByDateRule); const upcomingAlerts = array.filter((a) => isApproved(a) && !a.canceled_at && a.begin_at > today).sort(sortCommunicationsByDateRule); const activeAlerts = array.filter((a) => isApproved(a) && !a.canceled_at && a.begin_at <= today && a.end_at > today).sort(sortCommunicationsByDateRule); const expiredAlerts = array.filter((a) => (a.canceled_at || a.end_at < today)).sort(sortCommunicationsByDateRule); <div className="comm-communication-list comm-alert-list wrapper"> {this.renderNotificationUI()} {this.renderDefinitionList(pendingAlerts)} {this.renderDefinitionList(upcomingAlerts)} {this.renderDefinitionList(activeAlerts)} {this.renderDefinitionList(deniedAlerts)} {this.renderDefinitionList(expiredAlerts)} </div> //The ReactJS list above is rendering the Alert variables ie(pending, upcoming, active, denied, and expired) based upon the robust multiple filter methods
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede hacer esto con un viaje a través de la matriz de entrada, probando cada uno de los criterios para su inclusión en una de las matrices de salida. También puede usar datos para asociar el criterio con la matriz de salida...

 const pendingAlerts = []; const deniedAlerts = []; const upcomingAlerts = []; // and so on... const criteria = [ { array: pendingAlerts, criterion: a => a.approval_status === approvalStatuses.pending && !a.canceled_at }, { array: deniedAlerts, criterion: a => a.approval_status === approvalStatuses.denied && !a.canceled_at }, { array: upcomingAlerts, criterion: a => isApproved(a) && !a.canceled_at && a.begin_at > today }, // and so on ]; // this one loop pushes a into each of the output arrays where it matches the criterion array.forEach(a => { criteria.forEach(c => if (c.criterion(a)) c.array.push(a)); }); // then sort the output arrays... criteriaForEach(c => { c.array.sort(sortCommunicationsByDateRule) });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda