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

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

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