Array groupBy com JavaScript

44d atrás

0 0

Nesse artigo você vai aprender a agrupar um array de objetos com #JavaScript moderno. Leve em consideração o seguinte array:

const finances = [
    { user: 'João', amount: 10.5 },
    { user: 'Maria', amount: 5 },
    { user: 'José', amount: 7 },
    { user: 'Maria', amount: 12 },
    { user: 'Maria', amount: 15 },
    { user: 'Maria', amount: 2.5 },
    { user: 'João', amount: 5 },
    { user: 'José', amount: 7.5 }
];

Para agrupar o array por uma chave, por exemplo "user", podemos usar a função Object.groupBy():

Object.groupBy(finances, f => f.user);
Primeiro passamos o array para agrupar, e em segundo a função de agrupamento, ela deve retornar o valor a ser agrupado, nesse caso retorna o valor de "user".

O resultado do agrupamento será:

{
    'José': [
        { user: 'José', amount: 7 },
        { user: 'José', amount: 7.5 }
    ],
    'João': [
        { user: 'João', amount: 10.5 },
        { user: 'João', amount: 5 }
    ],
    'Maria': [
        { user: 'Maria', amount: 5 },
        { user: 'Maria', amount: 12 },
        { user: 'Maria', amount: 15 },
        { user: 'Maria', amount: 2.5 }
    ]
}

Referências

Para informações do método Object.groupBy(), acesse:

Object.groupBy() - JavaScript | MDN

The Object.groupBy() static method groups the elements of a given iterable according to the string values returned by a provided callback function. The returned object has separate properties for each group, containing arrays with the elements in the group.


Comentários (0)

0/512
Link