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

198
Vistas
How to modify & replace the key an object by comparing it with other objects?

I have an array of object which consists some id's as a key.

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

I want to compare sampleObj1 key with the sampleObj2 id value and then need to create new obj some like below.

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

I have tried using for loop but not able to get the desired compared value.

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 Respuestas
Responde la pregunta

0

The below may be one possible solution to achieve the desired objective:

Code Snippet

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));

Expalanation

  • Use .reduce() to iterate over the sampleArr
  • For each element populate a result obj (named f)
  • The key of the object will be the element's name and value will be the value from the sampleObj (where key is element's id)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Another approach using map and 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 Denunciar

0

I Have a simple solution for you

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 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