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

135
Vistas
Javascript: acceda a una propiedad anidada en un objeto desde una matriz de cadenas

tengo un objeto como este

 { metadata: { correlationId: 'b24e9f21-6977-4553-abc7-416f8ed2da2d', createdDateTime: '2021-06-15T16:46:24.247Z' } }

y tengo una serie de propiedades a las que quiero acceder

 [metadata, correlationId]

¿Cómo puedo acceder dinámicamente a la propiedad en el objeto? me gusta

 keys.forEach((key) => { object[key][key2] ??? })

debe ser dinámico ya que no sé qué tan profundo necesitamos acceder al objeto

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

0

Aquí hay una solución sin recursividad:

 const myObj = { a: { b: { c: "I'm the target" } } } const keys = ['a', 'b', 'c']; let result = myObj; for (const key of keys) { result = result[key]; } console.log(result);

O con recursividad:

 const finder = (obj, keys, index = 0) => { const result = obj[keys[index++]]; if (!result) { return obj; } return finder(result, keys, index); } console.log(finder(myObj, keys));
about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto es bastante similar a Acceder a matrices y objetos de JavaScript anidados por ruta de cadena , excepto con un paso menos: ya tiene las claves que necesita en forma de matriz. .reduce y accede al siguiente valor anidado en cada iteración.

 const obj = { metadata: { correlationId: 'b24e9f21-6977-4553-abc7-416f8ed2da2d', createdDateTime: '2021-06-15T16:46:24.247Z' } }; const keys = ['metadata', 'correlationId']; const result = keys.reduce((a, key) => a[key], obj); console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esta es mi idea para resolver tu problema. Dime, si te parece bien.

 let x = { metadata: { correlationId: 'b24e9f21-6977-4553-abc7-416f8ed2da2d', createdDateTime: '2021-06-15T16:46:24.247Z' } } let fun = x => typeof x === 'string' ? console.log(x) : Object.keys(x).map( y => fun(x[y])); fun(x);

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