I am using 'lodash' groupBy method to group transactions by user_id:
Here is the the example of initial array:
{
transaction_id: '2382697',
user_id: '16239',
transaction_label: 'IKEA',
transaction_date: 2020-10-13T21:00:00.000Z,
transaction_amount: -49
},
{
transaction_id: '2388400',
user_id: '16231',
transaction_label: 'ADEO',
transaction_date: 2020-05-24T21:00:00.000Z,
transaction_amount: -39.9
},
{
transaction_id: '2388991',
user_id: '16231',
transaction_label: 'BRON',
transaction_date: 2020-06-29T21:00:00.000Z,
transaction_amount: -86.89
}
Expected behavior of _.groupBy(array, 'user_id') is:
{
'16239': [
{
transaction_id: '2382697',
user_id: '16239',
transaction_label: 'IKEA',
transaction_date: 2020-10-13T21:00:00.000Z,
transaction_amount: -49
}
],
'16231': [
{
transaction_id: '2388400',
user_id: '16231',
transaction_label: 'ADEO',
transaction_date: 2020-05-24T21:00:00.000Z,
transaction_amount: -39.9
},
{
transaction_id: '2388991',
user_id: '16231',
transaction_label: 'BRON',
transaction_date: 2020-06-29T21:00:00.000Z,
transaction_amount: -86.89
}
]
}
BUT! In the array, where more the 1 transaction, the first element is the transaction with cumulated transaction amount:
'16231': [
{
transaction_id: '2388400',
user_id: '16231',
transaction_label: 'ADEO',
transaction_date: 2020-05-24T21:00:00.000Z,
transaction_amount: -126.79
},
{
transaction_id: '2388991',
user_id: '16231',
transaction_label: 'BRON',
transaction_date: 2020-06-29T21:00:00.000Z,
transaction_amount: -86.89
}
],
Who can clarify this behavior? And how to avoid it ?