2017-10-06 172 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