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

238
Visualizações
¿Cómo agregar un encadenamiento opcional al objeto JSON?

Estoy tratando de comparar un valor dentro de un objeto JSON con una variable:

 if (resp.userdetails.name == username) { // do something }

El problema es que no todos los objetos resp tienen detalles de userdetails , por lo que a veces recibo este mensaje de error:

No se pueden leer las propiedades de undefined (leyendo 'nombre')

He intentado usar ? decir que podría ser opcional (o no existir):

 if (resp.userdetails?.name == username)

Pero recibo un error de Unexpected token en ese caso.

¿Puede alguien decirme cómo puedo actualizar mi declaración if para decir que los detalles del userdetails pueden no estar siempre en la respuesta, pero si es así, entonces verifique que el name sea igual al nombre de username ?

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

0

O:

  • Use un motor JS que admita el encadenamiento opcional
  • Use una herramienta como Babel para transpilar su JS de una versión moderna del lenguaje a una más antigua que no admita el encadenamiento opcional
  • Pruebe manualmente el objeto existente antes de intentar leer una propiedad de él
 if (resp.userdetails && resp.userdetails.name == username)
about 4 years ago · Juan Pablo Isaza Relatório

0

Si instaló lodash en su proyecto, entonces puede usar

 _.get(resp,"userdetails.name")

como está documentado .

Si no ha instalado lodash, le sugiero que lo instale desde npm porque lodash es el mejor paquete de utilidades y el más utilizado.

about 4 years ago · Juan Pablo Isaza Relatório

0

Lodash es una biblioteca popular basada en javascript que proporciona más de 200 funciones para facilitar el desarrollo web. Proporciona funciones auxiliares como mapa, filtro, invocación, así como vinculación de funciones, plantillas de JavaScript, comprobaciones profundas de igualdad, creación de índices, etc. Lodash se puede usar directamente dentro de un navegador y también con Node.js.

Trabajar con objetos usando JavaScript puede ser bastante desafiante, específicamente si tiene que manipularlos mucho. Lodash viene con muchas características que facilitan su trabajo con objetos.

Lodash es un proyecto de código abierto y puede contribuir fácilmente a la biblioteca y agregar funciones en forma de complementos y hacer que esté disponible en GitHub y en Node.js.

Sintaxis

_.get(objeto, ruta, [valor predeterminado]) Obtiene el valor en la ruta del objeto. Si el valor resuelto no está definido, se devuelve el valor predeterminado en su lugar.

Argumentos

objeto (Objeto) - El objeto a consultar.

ruta (Array|string) - La ruta de la propiedad a obtener.

[defaultValue] (*): el valor devuelto para valores resueltos indefinidos.

Si instaló lodash en su proyecto, entonces puede usar

 _.get(resp,"userdetails.name")

como está documentado .

Si no ha instalado lodash, le sugiero que lo instale desde npm porque lodash es el mejor paquete de utilidades y el más utilizado.

comando para instalar Lodash

 npm install loadash

ingrese la descripción de la imagen aquí P.ej:-

 var _ = require("lodash"); var data = [ { userdetails: { name: "d" } }, {}, { userdetails: {} }, { userdetails: { name: "d" } }, ]; for (i = 0; i < data.length; i++) { var resp = data[i]; if (_.get(resp, "userdetails.name") == "d") { // if (resp.userdetails && resp.userdetails.name == "d") { use without loadlash console.log("Success"); } else { console.log("failed"); } }

Aquí loadash es súper complejo. Pero puede usar esto para evitar errores de tiempo de ejecución. Debajo de ambas expresiones se obtiene el mismo resultado.

 resp.userdetails && resp.userdetails.name == "d" === _.get(resp, "userdetails.name") == "d"
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