groupBy with Lodash module

戏子无情 提交于 2019-12-23 05:46:12

问题


I have grouped using the lodash module as below:

export class DtoTransactionCategory {
    categoryName: String;
    totalPrice: number;
}

groupBy

import { groupBy} from 'lodash';

  let result = groupBy(transactionCategoryList, (c: DtoTransactionCategory) => {
      return c.categoryName
    });

Result:

So now I need to get the above array like this (i.e. totalPrice is the sum of the group):

let myNewArry = [{categoryName:"cat1",totalPrice: 9400},
                    {categoryName:"cat2",totalPrice: 600}]

Can you tell me how to achieve last step? I'm using Lodash modules here.


回答1:


let result = {
cat1: [{totalPrice: 2}, {totalPrice: 3}],
cat2: [{totalPrice: 2}, {totalPrice: 5}]
}
const totals = _.map(result, (val, key) => ({categoryName: key, totalPrice: _.sumBy(val, 'totalPrice')}))

console.log(totals)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>


来源:https://stackoverflow.com/questions/46611526/groupby-with-lodash-module

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!