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

135
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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