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

134
Visualizações
cómo validar el par de valores clave para la validación sin if-else

Estoy comprobando si el valor del objeto es una cadena vacía y si el valor está vacío, entonces estoy configurando el valor de advertencia de la variable de estado para esa misma clave como verdadero

 const PrimaryEntryDetails = { name: "Pinak", number: 79777777, address: "" } const [warning,setWarning] = useState({ name: false, number: false, address: false }) Object.keys(PrimaryEntryDetails).map((key) => { if(PrimaryEntryDetails[key] === ""){ setWarning({...warning, [key] : !PrimaryEntryDetails[key]}) } })

si el valor de la clave PrimaryEntryDetails está vacío, estoy actualizando la variable de estado de advertencia, pero no funciona correctamente.

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

0

Creo que usar una lista de nombres de propiedades es más fácil de mantener:

 const propertyNames = [ 'productName', 'productMaker', 'model', 'productDescription', 'datePurchase', 'productPrice', ]; const missingProperty = propertyNames.find(name => PrimaryEntryDetails[name] === ''); if (missingProperty) { setWarning({...warning, [missingProperty]: true}); } else { setWarning(WarningProp); onContinue(); }
about 4 years ago · Juan Pablo Isaza Relatório

0

Asumiendo el formato

 const PrimaryEntryDetails = { "productName": "Name of product", ....

Puede usar .entries sin necesidad de saber o actualizar una lista de nombres

NOTA: Esta versión advertirá sobre TODOS los valores faltantes y no solo se detendrá en el primero

 let warnings = 0; Object.entries(PrimaryEntryDetails).forEach(([key, value]) => { if (value.trim() === "") { setWarning({ ...warning, [key]: true }) warnings++; } }) if (warnings === 0) { // assuming the code in your example worked setWarning(WarningProp); onContinue(); }

Si desea advertir sobre el primero vacío, use find

 let warnings = 0; const entry = Object.entries(PrimaryEntryDetails).find(([key, value]) => value.trim() === "") if (entry) setWarning({ ...warning, [entry[[0]]: true }) else { setWarning(WarningProp); onContinue(); }
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