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

194
Vistas
Asignar valor predeterminado al objeto si el valor no está definido

Estoy obteniendo datos de una API, algunos campos no son obligatorios, por lo tanto, no están definidos en el objeto de respuesta

Me gustaría asignar un valor vacío predeterminado como null '' [] a los parámetros de mi objeto si dichos campos no están definidos en la respuesta, hasta ahora esto es lo que tengo (tengo más campos para buscar pero me detuve en 5 para este ejemplo)

 await axios.get('https://myurl.com').then( async (response) => { await Promise.all(response.data.map(async (commerce) => { let options = { // BASE INFO field1: commerce.field1[0].value, field2 : commerce.field2[0].value, field3 : commerce.field3[0].value, field4 : commerce.field4[0].value, field5 : commerce.field5[0].value, } const default_options = { // BASE INFO field1: null, field2 : '', field3 : '', field4 : [], field5 : null, } const commerceObj = Object.assign({}, default_options, options) })); });

Recibo un error si un campo no tiene valor, por ejemplo commerce.field2[0] is undefined porque la respuesta de la API no lo incluye, lo que estoy buscando sería una forma eficiente de hacer algo como

field2 : if(commerce.field2[0].value) { commerce.field2[0].value } else {''}

Como tengo muchos campos, realmente no deseo tener muchos if en mi código lo único que pude encontrar que podría ayudarme es Object.assign() pero no ayudó mucho

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

0

Puede usar el operador condicional (ternario).

Sintaxis: condition ? exprIfTrue : exprIfFalse

 let options = { field1: commerce.field1[0].value ? commerce.field1[0].value : '', ... }
about 4 years ago · Santiago Trujillo Denunciar

0

Eche un vistazo al uso de @babel/plugin-proposal-optional-chaining , esto le permitiría hacer algo como:

 const field1 = commerce?.field1[0]?.value

También puede buscar en _.get :

 const field1 = _.get(commerce, 'field[0].value', null)

Si no, tendrás que hacer algo un poco más desordenado:

 commerce && commerce.field1 && commerce.field1.length ? commerce.field1[0].value : undefined
about 4 years ago · Santiago Trujillo Denunciar

0

la idea que está buscando es hacer un bucle en el primer objeto y asignar sus opciones predeterminadas dinámicamente

 let options = { // BASE INFO field1: commerce.field1[0].value, field2 : commerce.field2[0].value, field3 : commerce.field3[0].value, field4 : commerce.field4[0].value, field5 : commerce.field5[0].value, } const default_options = { // BASE INFO field1: null, field2 : '', field3 : '', field4 : [], field5 : null, } for (const fieldKey in options) { if(!options[fieldKey]) options[fieldKey] = default_options[fieldKey] // dynamically change it }
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