Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

199
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!