我正在从事小规模的项目。我有一系列收据,例如可乐,幻想,百事可乐,果汁等,当然还有它们的价格和数量。
receiptItems: Array<ReceiptItem>;
ReceiptItem
的外观如下:
export class ReceiptItem {
public id: string;
public product: Product;
public unitOfMeasure: UnitOfMeasure;
public discount: number;
public price: number;
public quantity: number;
public total: number;
public tax:Tax;
}
如何在打字稿中获取总额的总和,但仅在例如财产税等于“ 25%”的情况下?
在C#中,我记得我曾经使用过如下的lambda表达式:
IEnumerable<ReceiptItems> results = receiptItems.Where(s => s.Tax == "25.00");
totalSum = results.Sum(x => (x.TotalAmount));
如何在TypeScript / Angular中实现类似的功能?
答案 0 :(得分:10)
数组也具有此类方法。您可以再次根据条件filter
,然后使用reduce
聚合函数对项目求和。
const sum = receiptItems.filter(item => item.tax === '25.00')
.reduce((sum, current) => sum + current.total, 0);
item.tax === '25.00'
-这部分您必须根据逻辑进行调整