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

207
Visualizações
¿Cómo agrupo los datos que están anidados en una matriz?

Tengo una matriz de objetos y luego dentro de cada objeto tengo otra matriz, quiero agrupar los datos dentro de la matriz de objetos según su nombre de categoría. Intenté hacerlo con una función de reducción, pero básicamente me está dando los mismos datos (ni siquiera se transforma), es como si ni siquiera estuviera llamando.

Mis datos

 data = [ { name: "listName", id:434343, data: [ { id:434343, categoryName: school, }, { id:234343, categoryName: house, }, { id:2000, categoryName: school, }, { id:2333, categoryName: house, } ] }, { name: "anotherListName", id:434343, data: [ { id:434343, categoryName: school, }, { id:234343, categoryName: house, }, { id:2000, categoryName: school, }, { id:2333, categoryName: house, } ] } ]

mi código

 list.forEach(d => d.data.reduce((acc, currrent) => { (acc[currrent.categoryName] = acc[currrent.categoryName] || []).push( currrent ) return acc }, {}) )

Cómo quiero que se transformen los datos

 transformed = [ { name: "listName", id:43453, data: { school: [ { id:434343, categoryName:school }, { id:2000, categoryName:school }, ], house: [ { id:234343, categoryName:house }, { id:2333, categoryName:house }, ], } }, { name: "listName", id:43453, data: { school: [ { id:434343, categoryName:school }, { id:2000, categoryName:school }, ], house: [ { id:234343, categoryName:house }, { id:2333, categoryName:house }, ], } }, ]
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

puedes hacer algo como esto usando map y reduce

 const transform = data => data.map(({name, id, data}) => { return { name, id, data: data.reduce((res, {id, categoryName}) => { return { ...res, [categoryName]: [...(res[categoryName] || []), {id, categoryName }] } }, {}) } }) const data = [{ name: "listName", id: 434343, data: [{ id: 434343, categoryName: 'school', }, { id: 234343, categoryName: 'house', }, { id: 2000, categoryName: 'school', }, { id: 2333, categoryName: 'house', } ] }, { name: "anotherListName", id: 434343, data: [{ id: 434343, categoryName: 'school', }, { id: 234343, categoryName: 'house', }, { id: 2000, categoryName: 'school', }, { id: 2333, categoryName: 'house', } ] } ] const result = transform(data) console.log(result)

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