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

232
Vistas
Devuelve un nuevo objeto JS usando valores de objetos anteriores

Tengo un objeto de objetos (por ejemplo):

 const previousMap = {123456: {title: 'Test 1', productID: 123456}, 234567: {title: 'Test 2', productID: 234567}}

y me gustaría devolver un nuevo objeto, con cada clave como los títulos del objeto anterior y sus valores como el sku (que también resultan ser las claves del último objeto, pero prefiero usar el atributo .sku) .

Por ejemplo:

 const newMap = {'Test 1' : 123456, 'Test 2': 234567}

Yo he tratado:

 newMap = Object.entries(previousMap).map(([key, value]) => ({[value.title] : value.productID}))

pero termina obteniendo una serie de objetos.

Esto es algo que siento que normalmente podría lograr, pero mi cerebro realmente no funciona hoy. Cualquier ayuda = muy apreciada :)

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Otra posible solución:
Cambiar el mapa para devolver una matriz de clave y valor [k,v] y luego llamar a Object.fromEntries en él.

 const previousMap = { 123456: { title: 'Test 1', productID: 123456 }, 234567: { title: 'Test 2', productID: 234567 } } let newMap = Object.fromEntries( Object.entries(previousMap) .map(([key, value]) => [value.title, value.productID]) ); console.log(newMap)

about 4 years ago · Juan Pablo Isaza Denunciar

0

Un .map , por definición, siempre devolverá una matriz. En su lugar, puede usar .reduce , comenzando con un objeto vacío como valor inicial para su acumulador, y distribuirlo en el nuevo objeto de retorno en cada iteración:

 const previousMap = { 123456: { title: 'Test 1', productID: 123456 }, 234567: { title: 'Test 2', productID: 234567 } } const newMap = Object.entries(previousMap) .reduce( (acc, [key, value]) => ({ ...acc, [value.title]: value.productID }), {} ); console.log(newMap);

También puede lograr esto con un bucle simple y seguir mutando un solo objeto, si lo desea.

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