Group By and Sum using Underscore/Lodash

后端 未结 6 2070
鱼传尺愫
鱼传尺愫 2020-12-09 04:44

I have JSON like this:

[
  {
     platformId: 1,
     payout: 15,
     numOfPeople: 4
  },
  {
     platformId: 1,
     payout: 12,
     numOfPeople: 3

  }         


        
6条回答
  •  臣服心动
    2020-12-09 05:38

    Here's a Lodash solution to this kind of problem. It's similar to Underscore, but with some more advanced features.

    const data = [{
        platformId: 1,
        payout: 15,
        numOfPeople: 4
      },
      {
        platformId: 1,
        payout: 12,
        numOfPeople: 3
    
      },
      {
        platformId: 2,
        payout: 6,
        numOfPeople: 5
    
      },
      {
        platformId: 2,
        payout: 10,
        numOfPeople: 1
      },
    ];
    
    const ans = _(data)
      .groupBy('platformId')
      .map((platform, id) => ({
        platformId: id,
        payout: _.sumBy(platform, 'payout'),
        numOfPeople: _.sumBy(platform, 'numOfPeople')
      }))
      .value()
    
    console.log(ans);

提交回复
热议问题