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

181
Visualizações
(JavaScript) ¿Lo mejor era verificar múltiples condiciones y finalizar la ejecución tan pronto como una devuelva falso?

Actualmente estoy trabajando en una aplicación de turno de servicio. Necesito calcular qué empleado puede trabajar en cada día particular del mes. Esto también debe actualizarse "sobre la marcha", ya que si alguien es asignado a trabajar el día 1, por ejemplo, no podrá trabajar el día 2.

Si alguien puede trabajar en un día o no depende de múltiples condiciones. Mi idea es tener una función de "controlador" que verifique si alguna de las funciones de "condiciones" devuelve falso = eso significa que la persona no está disponible para ese día.

Me gusta una forma simplemente multiplicando los valores de retorno como

 const controller = (day, employee) => { return ( cond1(day, employee) * cond2(day, employee) * cond3(day, employee) * cond4(day, employee) * cond5(day, employee) ) }

dado que verdadero == 1 y falso == 0, devuelve 0 tan pronto como una condición es falsa. Pero pensé que esta podría no ser la forma más eficiente porque verifica todas las condiciones. Estoy buscando una manera de regresar tan pronto como una condición sea falsa.

Podría usar if-else pero esto se convertiría en una condición ilegible, muy rápido

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

&& provocará un cortocircuito si el primer valor es false . Probar esto:

 function foo() { console.log('called foo'); return false; } function bar() { console.log('called bar'); return true; } foo() && bar()

La salida solo debe called foo . El cortocircuito significa que la expresión booleana solo evaluará tanto como sea necesario; si el lado izquierdo de && es falso, entonces la expresión es falsa y no es necesario evaluar el lado derecho. Tenga en cuenta que esto también sucede con || , pero al revés: si el lado izquierdo de la expresión es true , el lado derecho no se evalúa.

Si todas las funciones toman exactamente los mismos argumentos que su ejemplo implica, podría usar [].every , que también "cortocircuita" al finalizar la iteración antes de tiempo. Sin embargo, advertiría contra esto para su ejemplo específico, ya que puede dificultar el mantenimiento de las cosas en el caso de que incluso una de esas funciones cond tome parámetros diferentes.

 [cond1, cond2, cond3, cond4, cond5].every((cond) => cond(day, employee))
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