Javascript 洛达斯群体行为
我正在使用“lodash”groupBy方法按用户id对交易进行分组: 以下是初始数组的示例:Javascript 洛达斯群体行为,javascript,lodash,Javascript,Lodash,我正在使用“lodash”groupBy方法按用户id对交易进行分组: 以下是初始数组的示例: { transaction_id: '2382697', user_id: '16239', transaction_label: 'IKEA', transaction_date: 2020-10-13T21:00:00.000Z, transaction_amount: -49 }, { transaction_id:
{
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
}
_u.groupBy(数组,'user_id')的预期行为是:
但是!在数组中,如果1个交易数越多,则第一个元素是具有累计交易金额的交易:
'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
}
],
谁能澄清这种行为?如何避免它?分组是正确的。如果您的意思是顺序不同-是的,这是JavaScript对键进行排序的方式。任何正整数键都将以递增顺序迭代。这是规格的一部分。如果你指的是别的东西,我真的不确定它是什么。@VLAZ可以订购。我不在乎点什么。查看输出数组ot事务。第一个元素有->交易金额:-126.79,但应该是->交易金额:-39.9。id为16231的用户有2笔交易,金额分别为:-39.9和-86.89。但正如你所看到的,第一个元素-126.79=-39.9-86.89。这是我不明白的一点。。我的最佳猜测是,您的代码稍后会修改对象,因此您只会看到更新的值。
'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
}
],