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

100
Vistas
¿Cómo puedo crear condiciones en múltiples objetos de matriz para manejar errores en React?

Tengo un objeto de matriz llamado containertemps. Tiene un valor de propiedad llamado modDate.

Extraigo el valor booleano de la variable temperror comparando el tiempo en función del valor de la propiedad modDate entre varios objetos en containertemps.

Entonces, al colocar las variables de temperror 1, 2 y 3 en la variable de error, si alguna de ellas es verdadera, se representa el componente NotError, y cuando todas son falsas, se representa el componente Error.

Pero mirando mi código, esto parece ineficiente porque hay demasiados duplicados.

Como puedes ver, temperror0 y temperror1 y temperror2, El código que crea la variable está duplicado. ¿Cómo puedo deshacerme de estos valores duplicados en una pieza de código?

este es mi codigo

 const containtemps = [
 {
 modDate:"2022-09-22T04:48:00.000Z"
 },
 {
 modDate: null
 },
 {
 modDate:"2022-09-22T04:5:00.000Z"
 }
 ]

 this is duplicated code

 let curTime = new Date()
 curTime.setHours(curTime.getHours() - 6)


 const tempModate0 = containtemps[0]?.modDate;

 let tempmodDate0 = new Date(tempModate0)

 let temperror0 = curTime.getTime() <= tempmodDate0.getTime() ? false : true


 const tempModate1 = containtemps[1]?.modDate;


 let tempmodDate1 = new Date(tempModate1)

 let temperror1 = curTime.getTime() <= tempmodDate1.getTime() ? false : true



 
 const tempModate2 = containtemps[2]?.modDate;


 let tempmodDate2 = new Date(tempModate2)

 let temperror2 = curTime.getTime() <= tempmodDate2.getTime() ? false : true

 const error =

 temperror0 ||
 temperror1 ||
 temperror2 ;

 ;


 return (

 !error ?
 (
 <NotError>
 notError
 </NotError>

 )
 :
 (
 <Error>
 error
 </Error>)

 )
almost 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puede usar some función dentro de su matriz. Devolverá true si encuentra al menos un resultado que coincida con su expresión. Aquí necesitas la expresión opuesta >

 const curTime = new Date();
const error = containtemps.some(t => t.modDate && curTime.getTime() > new Date(t.modDate).getTime())
almost 4 years ago · Santiago Trujillo Denunciar

0

Podría simplemente declarar una función auxiliar:

 const checkTempDate = (tempDate) => {
 const date = new Date(tempDate);
 return curTime.getTime() <= date.getTime() ? false : true;
};

const error =
 checkTempDate(containtemps[0]?.modDate) ||
 checkTempDate(containtemps[1]?.modDate) ||
 checkTempDate(containtemps[2]?.modDate);

return !error ? <NotError>notError</NotError> : <Error>error</Error>;
almost 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