Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

204
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda