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

99
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 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