Как суммировать значения в массиве машинописного текста на основе свойства элементов массива? - PullRequest
0 голосов
/ 27 августа 2018

Я работаю над небольшим угловым проектом. У меня есть массив пунктов получения, например, кокс, фанта, пепси, сок и т. д., с указанием их цены и количества.

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 # я использовал лямбда-выражения, подобные этому:

IEnumerable<ReceiptItems> results = receiptItems.Where(s => s.Tax == "25.00");
   totalSum = results.Sum(x => (x.TotalAmount));

Как добиться чего-то похожего в TypeScript / Angular?

1 Ответ

0 голосов
/ 27 августа 2018

Массивы в JavaScript / TypeScript также имеют такие методы. Вы можете снова filter выполнить с вашим условием, а затем использовать reduce функцию агрегирования для суммирования элементов.

const sum = receiptItems.filter(item => item.tax === '25.00')
                        .reduce((sum, current) => sum + current.total, 0);

item.tax === '25.00' - эту часть вы должны настроить с помощью логики

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...