Javascript 洛达斯群体行为

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:

我正在使用“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: '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
    }
  ],