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

116
Views
Buscar objeto por clave en una matriz de objetos

Hola, esta es una matriz de objetos.

 const raceId = '1004' const array = [ { '1004': { brackets: { '18': [Object], '19': [Object], '20': [Object] } } }, { '999': { brackets: { '1': [Object], '2': [Object], '3': [Object] } } } ]

Así que estoy tratando de devolver solo un

 { brackets: { '18': [Object], '19': [Object], '20': [Object] } }

Intenté usar reduce(), map(), find() pero no obtuve el resultado deseado. Por ejemplo lo he intentado.

 const reduced = raceScoringConfigGroups.reduce((acc, key) => { if (Object.keys(key)[0] === raceId) { return key[raceId] } }, {})

Pero por alguna razón que no se define, ¿alguien puede ayudarme un poco? No estoy seguro de lo que estoy haciendo mal. No me gustan las soluciones con forEach o bucles for, tratando de escribir oneliner.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

El valor que devuelve en la devolución de llamada reduce() se usa como acumulador en la siguiente iteración. Dado que no devuelve nada cuando la clave no coincide con raceId , su código solo funcionará si la clave coincidente es el último elemento de la matriz.

Use find() en lugar de reduce() , y luego obtenga la propiedad de eso.

 const found = raceScoringConfigGroups.find(el => el[raceId]); const reduced = found?.[raceId];
about 4 years ago · Juan Pablo Isaza Report

0

¿Puedes probar esto?

const result = array.filter(el => Object.keys(el) === raceId)[0];

about 4 years ago · Juan Pablo Isaza Report

0

Bueno, hasta cierto punto funciona como un bucle porque si coloca un archivo console.log antes de la tecla de retorno [raceId], verá que primero devuelve un valor y luego indefinido.

No sé si está cerca de lo que quieres hacer, pero esta también es una forma de encontrar el objeto.

 const findIt = array.find( item => Object.keys(item)[0] === raceId); console.log(findIt) console.log(findIt['1004'])
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!