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

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

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

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

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