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

251
Visualizações
¿Hay una forma más limpia de verificar si existe un nodo anidado profundo?

Usando javascript puro, sin terceros / lodash, etc.

Dado que un usuario busca la existencia de un nodo anidado profundo, ¿existe una forma más limpia de garantizar que cada nodo principal exista para no devolverlo indefinido?

Manteniéndolo simple, verifique que un accesorio anidado tenga longitud antes de realizar una acción.

El problema es que, especialmente al pasar props, en cualquier nodo dado, podrías terminar con undefined .

¿Hay alguna manera de evitar verificar que cada nodo exista de esta manera:

 if( !!Grandparent && !!Grandparent.Parent && !!Grandparent.Parent.child && !!Grandparent.Parent.child.prop3.length){ // do something }

Algo más como esto: (lo cual sé que no es correcto ya que cualquier nodo que no esté undefined controla el proceso).

 if(!!Grandparent.Parent.child.prop3.length) { // do something } // OR if(typeof Grandparent.Parent.child.prop3.length !== "undefined"){ // do something }

EX:

 Grandparent: { Parent: { child: { prop1: 'alpha', prop2: 'beta', prop3: [ item: { name: 'first', type: 'string' }, item: { name: 'second', type: 'number' } ] } } }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Como han indicado los comentaristas, el JavaScript moderno proporciona el operador de encadenamiento opcional ( ?. ) , que puede usar así (siempre que no esté tratando de admitir IE):

 const grandparent = getObject(), itemsCount = grandparent?.parent?.child?.prop3?.length, oops = grandparent?.parent?.child?.length; console.log(itemsCount ?? "No such property"); console.log(oops ?? "No such property"); function getObject(){ return { parent: { child: { prop1: 'alpha', prop2: 'beta', prop3: [ { item: { name: 'first', type: 'string' }}, { item: { name: 'second', type: 'number' }} ] } } }; }

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