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

167
Vistas
Map function to build an array from filtered object

I'm trying to get my head around map functions currently without much success.

I currently have a list of objects and am trying to remap to a new object using the map function to return a map indexed by the created property with a list of wooids.

Having written my map function, I only seem to be returning the last time.

const variants = [
{
   created: '2022-03-06',
    hashname: 'c78ba80402290724609a5e98c369c90984494152',
    hashobject: '80864e6329d5e305a512ace872ad7d56a3f41095',
    hashparent: '19c5d50ddddeb7c9a92469df78c47d9d611f1599',
    action: 'added',
    wooid: 7288
  },
{
   created: '2022-03-06',
    hashname: 'c78ba80402290724609a5e98c369c90984494152',
    hashobject: '80864e6329d5e305a512ace872ad7d56a3f41095',
    hashparent: '19c5d50ddddeb7c9a92469df78c47d9d611f1599',
    action: 'added',
    wooid: 7289
  }   
]

const res = Object.fromEntries(variants.map(k => [k.created, [k.wooid]]))
console.log(res)
Current output

{ '2022-03-06': [ 7289 ] }

Desired output:

{ '2022-03-06': [ 7289, 7288 ] }

Any help would be greatly appreciated as I'm unsure how to dynamically populate the array to include all other entires (6 in total).

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

0

Use Array.prototype.reduce() to build up your object. Check if you already have a key for each created value and if not, create an empty array. Then append the wooid value

const variants = [{"created":"2022-03-06","hashname":"c78ba80402290724609a5e98c369c90984494152","hashobject":"80864e6329d5e305a512ace872ad7d56a3f41095","hashparent":"19c5d50ddddeb7c9a92469df78c47d9d611f1599","action":"added","wooid":7288},{"created":"2022-03-06","hashname":"c78ba80402290724609a5e98c369c90984494152","hashobject":"80864e6329d5e305a512ace872ad7d56a3f41095","hashparent":"19c5d50ddddeb7c9a92469df78c47d9d611f1599","action":"added","wooid":7289}]

const res = variants.reduce((acc, { created, wooid }) => ({
  ...acc,
  [ created ]: [
    ...acc[created] ?? [], // init to an empty array if unset
    wooid
  ]
}), {})

console.log(res)

This will collect wooid values by created in the order they appear in the original data.

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