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

143
Vistas
Acceda y extraiga valores de una matriz de objetos doblemente anidados en JavaScript

Tengo una matriz de objetos y dentro de esos objetos hay otro objeto que contiene una propiedad particular de la que quiero obtener el valor y almacenar en una matriz separada.

¿Cómo accedo y almaceno el valor de la propiedad de name de la estructura de datos a continuación?

 pokemon:Object abilities:Array[2] 0:Object ability:Object name:"blaze" 1:Object ability:Object name:"solar-power"

¿Cómo devolvería y mostraría los valores en la propiedad de name como una buena cadena como

blaze, solar-power ?

Intenté hacer algo como esto, pero todavía obtengo una matriz y no quiero hacer un tercer ciclo ya que no funciona.

 let pokemonAbilities = []; let test = pokemon.abilities.map((poke) => Object.fromEntries( Object.entries(poke).map(([a, b]) => [a, Object.values(b)[0]]) ) ); test.map((t) => pokemonAbilities.push(t.ability));

Data de muestra:

 "pokemon": { "abilities": [ { "ability": { "name": "friend-guard", "url": "https://pokeapi.co/api/v2/ability/132/" }, "ability": { "name": "Solar-flare", "url": "https://pokeapi.co/api/v2/ability/132/" } } ] }

Luego estoy haciendo una unión en la matriz devuelta desde arriba para obtener una cadena formateada.

Parece que los múltiples bucles map() se pueden optimizar, pero no estoy seguro de cómo hacerlo más eficiente.

Gracias.

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

0

No hay necesidad de un bucle dentro del bucle. Prueba esto:

 const pokemon = { abilities: [{ ability: { name: 'friend-guard', url: 'https://pokeapi.co/api/v2/ability/132/' }, }, { ability: { name: 'Solar-flare', url: 'https://pokeapi.co/api/v2/ability/132/' } }] }; const pokemonAbilities = pokemon.abilities.map(item => item.ability.name).join(', '); console.log(pokemonAbilities);

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