groupBy与Lodash模块 [英] groupBy with Lodash module

查看:1087
本文介绍了groupBy与Lodash模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用lodash模块分组如下:

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

groupBy

 从'lodash'导入{groupBy}; 

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

结果:





所以现在我需要像这样得到上面的数组(即 totalPrice 总和

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

你能告诉我如何实现最后一步吗?我在这里使用 Lodash模块

解决方案

  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 /库/ lodash.js / 4.17.4 / lodash.min.js>< /脚本>  


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.

解决方案

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>

这篇关于groupBy与Lodash模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆