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

207
Views
¿Cómo modificar y reemplazar la clave de un objeto comparándolo con otros objetos?

Tengo una matriz de objetos que consta de algunas identificaciones como clave.

 const sampleObj1 = {0011:[{},{}], 0022:[{}, {}], 0033:[{},{}]} const sampleObj2 = [{id:0011, name:'test1'}, {id:0022, name:'test2'}, {id:0033, name:'test3'}]

Quiero comparar la clave sampleObj1 con el valor de identificación de sampleObj2 y luego necesito crear un nuevo obj como el siguiente.

 const newObjByComparing = {test1:[{},{}], test2:[{},{}], test3:[{},{}]} //desired result

Intenté usar for loop pero no pude obtener el valor comparado deseado.

 const fromRdx = sampleObj2; const fromApi = sampleObj1; const keys = Object.keys(fromApi); const newObjAfterComparision = {}; for (let i in fromRdx) { newObjAfterComparision[fromRdx[i]] = fromApi[keys[i]]; fromApi[fromRdx[i]] = fromApi[keys[i]]; delete fromApi[keys[i]]; } console.log(newObjAfterComparision)
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

La siguiente puede ser una posible solución para lograr el objetivo deseado:

Fragmento de código

 const transformObj = (obj, arr) => arr.reduce((f, i) => ({ ...f, [i.name]: obj[i.id] }), {}); const sampleObj = { "0011": [{}, {}], "0022": [{}, {}], "0033": [{}, {}] }; const sampleArr = [{ id: "0011", name: "test1" }, { id: "0022", name: "test2" }, { id: "0033", name: "test3" }]; console.log(transformObj(sampleObj, sampleArr));

explanación

  • Use .reduce() para iterar sobre sampleArr
  • Para cada elemento, complete un resultado obj (llamado f )
  • La clave del objeto será el name del elemento y el valor será el valor de sampleObj (donde la clave es la id del elemento)
about 4 years ago · Juan Pablo Isaza Report

0

Otro enfoque usando map y Object.fromEntries

 const sampleObj1 = {'0011':[{},{}], '0022':[{}, {}], '0033':[{},{}]} const sampleObj2 = [{id:'0011', name:'test1'}, {id:'0022', name:'test2'}, {id:'0033', name:'test3'}] let y = Object.fromEntries(sampleObj2.map(({id,name}) => [name,sampleObj1[id]])) console.log(y)

about 4 years ago · Juan Pablo Isaza Report

0

Tengo una solución simple para ti.

 const sampleObj1 = {0011:[{},{}], 0022:[{}, {}], 0033:[{},{}]} const sampleObj2 = [{id:0011, name:'test1'}, {id:0022, name:'test2'}, {id:0033, name:'test3'}] const keys = Object.keys(sampleObj1); const newObjByComparing = sampleObj2.reduce((acc, cur, index) => { acc[cur.name] = sampleObj1[keys[index]]; return acc; }, {});
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!