Group By and Sum using Underscore/Lodash

后端 未结 6 2072
鱼传尺愫
鱼传尺愫 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:27

    A (in my opinion) nice functional way using underscore.js:

    var sum = function(t, n) { return t + n; };
    _.mapObject(
        _.groupBy(data, 'platformId'),
        function(values, platformId) {
            return {
                payout: _.reduce(_.pluck(values, 'payout'), sum, 0),
                numOfPeople: _.reduce(_.pluck(values, 'numOfPeople'), sum, 0)
            };
        }
    );
    

提交回复
热议问题