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

169
Visualizações
Agrupar una matriz de objetos en un objeto de matrices por múltiples claves y agregar las identificaciones del grupo a la clave

Ejemplo hecho de código -

Interfaz -

 interface IInterface { id: number; name: string; age: number; }

matriz -

 const arr: IInterface[] = [ { id: 1, name: 'daniel', age: 12 }, { id: 2, name: 'jonny', age: 13 }, { id: 3, name: 'daniel', age: 12 }, { id: 4, name: 'daniel', age: 12 } ]

Función agrupar por -

 const GroupBy = ( array: IInterface[], f: (element: IInterface) => (string | number | undefined)[] ) => { const groups: { [key: string]: IInterface[] } = {}; array.forEach((object) => { const group = f(object).join("-"); groups[group] = groups[group] || []; groups[group].push(object); }); return groups; };

Usando la función groupBy -

 const Grouped = GroupBy(arr, (element: IInterface) => { return [ element.name, element.age, ]; });

Resultado ahora -

 { "daniel-12": [ { "id": 1, "name": "daniel", "age": 12 }, { "id": 3, "name": "daniel", "age": 12 }, { "id": 4, "name": "daniel", "age": 12 } ], "jonny-13": [ { "id": 2, "name": "jonny", "age": 13 } ] }

resultado buscado -

 { "daniel-12-ids-1-3-4": [ { "id": 1, "name": "daniel", "age": 12 }, { "id": 3, "name": "daniel", "age": 12 }, { "id": 4, "name": "daniel", "age": 12 } ], "jonny-13-ids-2": [ { "id": 2, "name": "jonny", "age": 13 } ] }

Necesito que todas las identificaciones de grupo estén en el nombre de la clave ...................................... .................................................... .................................................... .............

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Podrías crear un nuevo objeto a partir del anterior.

 const grouped = { "daniel-12": [{ id: 1, name: "daniel", age: 12 }, { id: 3, name: "daniel", age: 12 }, { id: 4, name: "daniel", age: 12 }], "jonny-13": [{ id: 2, name: "jonny", age: 13 }] }, result = Object.fromEntries(Object.entries(grouped).map(([k, v]) => [ [k, 'ids', v.map(({ id }) => id).join('-')].join('-'), v ])); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

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