我正在做一个小的角度项目。我有一系列的收据项目,例如可乐,fanta,百事可乐,果汁等,当然还有它们的价格和数量。
receiptItems: Array<ReceiptItem>;
Run Code Online (Sandbox Code Playgroud)
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;
}
Run Code Online (Sandbox Code Playgroud)
我如何才能在打字稿中获得总额的总和,但是仅在例如财产税等于“ 25%”的情况下?
我记得在C#中我使用过如下的lambda表达式:
IEnumerable<ReceiptItems> results = receiptItems.Where(s => s.Tax == "25.00");
totalSum = results.Sum(x => (x.TotalAmount));
Run Code Online (Sandbox Code Playgroud)
如何在TypeScript / Angular中实现类似的功能?
Sur*_*yan 19
JavaScript / TypeScript中的数组也具有此类方法。您可以再次filter根据条件进行调整,然后使用reduce聚合函数对各项求和。
const sum = receiptItems.filter(item => item.tax === '25.00')
.reduce((sum, current) => sum + current.total, 0);
Run Code Online (Sandbox Code Playgroud)
item.tax === '25.00' -这部分您必须根据自己的逻辑进行调整