Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

140
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!