Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

138
Vistas
¿Cómo acortar eficientemente estas declaraciones if?

Estoy trabajando en un proyecto y en el código agregué algunas declaraciones if. Luego me dijeron que puedo hacerlo en línea y de manera más eficiente. La forma en que lo hice funciona perfectamente, pero necesito refactorizar para que sea aceptado. ¿Podrías ayudarme? He probado el operador ternario como puedes ver en los ejemplos a continuación, pero aún no es tan corto

Suponiendo que tenemos dos matrices arr1 y arr2 y se implementa el siguiente código para verificar si sus longitudes.

const hasValArr1 = ():boolean => return arr1.length > 0
const hasValArr2 = ():boolean => return arr2.length > 0

Ahora la parte interesante si las declaraciones

 const isEmpty():boolean => { if (!hasValArr1() && !hasValArr2()) return false else if (hasValArr1() && hasValArr2()) return true else if (!hasValArr1() && hasValArr2()) return true else if (hasValArr1() && !hasValArr2()) return true }

utilizando el operador ternario

 (!hasValArr1() && !hasValArr2()) ? false :(hasValArr1() && hasValArr2()) ? true :(!hasValArr1() && hasValArr2()) ? true :(hasValArr1() && !hasValArr2()) && true

¿Cómo harías para escribir esto de una manera más legible y eficiente? ¡Gracias por adelantado!

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

La implementación no coincide con el nombre del método. El nombre del método es isEmpty pero devuelve false si ambas matrices no tienen un valor: if (!hasValArr1() && !hasValArr2()) return false

Entonces el nombre debería ser: hasAnyValue o doArraysHaveAnyValue o algo por el estilo.

En cuanto a la simplificación, simplemente puede usar || :

 const doArraysHaveAnyValue(): boolean => { return hasValArr1() || hasValArr2(); }

La razón por la que esto es mejor es porque es más fácil de leer y da preferencia a usar "positivo" en lugar de negación con !

about 4 years ago · Santiago Trujillo Denunciar

0

yo creo que puedes

 сonst isEmpty():boolean => { if (!hasValArr1() && !hasValArr2()) return false return true; }

o:

 const isEmpty():boolean => { return (!hasValArr1() && !hasValArr2()) }

o si desea verificar si ambas matrices tienen valores:

 const HasArraysData():boolean => { return (hasValArr1() && hasValArr2()) }

y se vuelve más simple leer el código:

 if (HasArraysData)

o:

 if (!HasArraysData)
about 4 years ago · Santiago Trujillo Denunciar

0

Sin cuestionar la premisa de la pregunta, puede escribir:

 const isEmpty():boolean => { return hasValArr1() || hasValArr2() }
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda