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

125
Vistas
No obtener todas las claves del objeto anidado usando Javascript

Estoy tratando de obtener todas las claves de un objeto anidado usando Javascript pero según mi código no funciona como se esperaba. Estoy explicando mi código a continuación.

 let jsonObj = { "service":[ { "name":"restservice", "device":"xr-1", "interface-port":"0/0/2/3", "interface-description":"uBot testing for NSO REST", "addr":"10.10.1.3/24", "mtu":1024 } ], "person": { "male": { "name": "infinitbility" }, "female": { "name": "aguidehub" } } } const getNestedKeys = (data, keys) => { if(!(data instanceof Array) && typeof data == 'object'){ Object.keys(data).forEach(key => { keys.push(key); const value = data[key]; if(typeof value === 'object' && !(value instanceof Array)){ getNestedKeys(value, keys); } }); } return keys } let result = getNestedKeys(jsonObj, []); console.log('result', result);

Aquí no obtengo las claves presentes dentro de la matriz de service . Necesito buscar todas las claves presentes dentro de un objeto anidado usando Javascript.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Puedes hacerlo

 const readAllKeys = obj => { if(typeof obj !== 'object'){ return [] } if(Array.isArray(obj)){ return obj.flatMap(readAllKeys) } return [...Object.keys(obj), ...Object.values(obj).flatMap(readAllKeys)] } let jsonObj = { "service":[ { "name":"restservice", "device":"xr-1", "interface-port":"0/0/2/3", "interface-description":"uBot testing for NSO REST", "addr":"10.10.1.3/24", "mtu":1024 } ], "person": { "male": { "name": "infinitbility" }, "female": { "name": "aguidehub" } } } console.log(readAllKeys(jsonObj))

about 4 years ago · Juan Pablo Isaza Denunciar

0

Está solicitando que funcione con la clave de "servicio", que es una matriz, pero su código verifica explícitamente el tipo y, si es una matriz, simplemente la ignora. Aquí está el código ajustado para trabajar con matriz también.

 let jsonObj = { "service":[ { "name":"restservice", "device":"xr-1", "interface-port":"0/0/2/3", "interface-description":"uBot testing for NSO REST", "addr":"10.10.1.3/24", "mtu":1024 } ], "person": { "male": { "name": "infinitbility" }, "female": { "name": "aguidehub" } } } const getNestedKeys = (data, keys) => { if(data instanceof Array) { data.forEach(value => { getNestedKeys (value, keys); }); } if(!(data instanceof Array) && typeof data == 'object'){ Object.keys(data).forEach(key => { keys.push(key); const value = data[key]; if(typeof value === 'object'){ getNestedKeys(value, keys); } }); } return keys } let result = getNestedKeys(jsonObj, []); console.log('result', result);

about 4 years ago · Juan Pablo Isaza 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