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

175
Views
Matriz de objetos convertidos en objetos con claves por valor de campo de elemento

Tengo esta matriz:

 const demo = [ { key: 'apple', a: 'b', c: 1 }, { key: 'banana', a: 'f', c: 3 }, { key: 'orange', a: 'j', c: 8 }, ];

Puedo obtener información sobre "banana" usando:

 demo.find(item => item.key === 'banana')

En cambio, me gustaría tener este asociativo y acceder así:

 demo.banana.c

Así que necesito de alguna manera obtener esto:

 const demo = { 'apple': { key: 'apple', a: 'b', c: 1 }, 'banana': { key: 'banana', a: 'f', c: 3 }, 'orange': { key: 'orange', a: 'j', c: 8 }, };

O sin "llave" adentro, no importa.

¿Cuál sería la solución más simple? ¿Algún enfoque simple (tal vez de una sola línea) con ES6? Si no, ¿Lodash en su lugar?

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

0

 const demo = [{ key: 'apple', a: 'b', c: 1 }, { key: 'banana', a: 'f', c: 3 }, { key: 'orange', a: 'j', c: 8 }, ]; const solution = demo.reduce((acc, cur) => { acc[cur.key] = cur; return acc }, {}) console.log(solution)

about 4 years ago · Juan Pablo Isaza Report

0

Podría usar Object.fromEntries para construir el objeto y desestructurar para extraer la clave del resto del objeto original:

 const demo = [ { key: 'apple', a: 'b', c: 1 }, { key: 'banana', a: 'f', c: 3 }, { key: 'orange', a: 'j', c: 8 }, ]; let result = Object.fromEntries(demo.map(({key, ...rest}) => [key, rest])); console.log(result);

about 4 years ago · Juan Pablo Isaza Report

0

Usas _.keyBy() de lodash:

 const demo = [ { key: 'apple', a: 'b', c: 1 }, { key: 'banana', a: 'f', c: 3 }, { key: 'orange', a: 'j', c: 8 }, ]; const result = _.keyBy(demo, 'key'); console.log(result);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

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!