Angular 6:计算列表的总和(可观察)

时间:2018-07-01 18:42:42

标签: angular rxjs

我有一个Orders数组,想要创建一个可观察值,以给出计算出的价格总和。我正在使用Angular 6。

await page.waitForSelector('#myContentSelector');
地图运算符中的

'order'是Order []而不是Order。 我在做什么错了?

2 个答案:

答案 0 :(得分:4)

Property 'price' does not exist on type 'IOrder[]

这意味着您的可观察对象不会一一返回元素流(这就是您在此处期望的结果),而是一次返回整个数组-发出单个结果。将map强制设为属性,立即对数组执行reduce

会是这样

   this.total$ = this.list$.pipe(
      map(order => order.reduce((total, price) => total + price, 0),'
    );

答案 1 :(得分:0)

this.total$ = this.list$.pipe(
  mergeMap((list: number[]) => from(list).pipe(
    reduce((totalPrice: number, currentPrice: number) => totalPrice + currentPrice)
  ))
);

这是您可以使用的另一种解决方案