Estoy tratando de entender las funciones del mapa actualmente sin mucho éxito.
Actualmente tengo una lista de objetos y estoy tratando de reasignar a un nuevo objeto usando la función de mapa para devolver un mapa indexado por la propiedad creada con una lista de wooids.
Habiendo escrito mi función de mapa, parece que solo estoy regresando la última vez.
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)
{ '2022-03-06': [ 7289 ] }
Salida deseada:
{ '2022-03-06': [ 7289, 7288 ] }
Cualquier ayuda sería muy apreciada ya que no estoy seguro de cómo llenar dinámicamente la matriz para incluir todas las demás (6 en total).
Use Array.prototype.reduce() para construir su objeto. Compruebe si ya tiene una clave para cada valor created
y, si no, cree una matriz vacía. Luego agregue el valor de la wooid
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)
Esto recopilará valores de wooid
created
en el orden en que aparecen en los datos originales.