2017-10-06 47 views
0

我已经使用lodash模块如下组合:GROUPBY与Lodash模块

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

GROUPBY

import { groupBy} from 'lodash'; 

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

结果:

enter image description here

所以现在我需要像这样得到上面的数组(即totalPricegroupsum):

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

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

回答

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>

+0

终于拿到了solution.Thank你:) – Sampath