我有一个Orders数组,想要创建一个可观察值,以给出计算出的价格总和。我正在使用Angular 6。
await page.waitForSelector('#myContentSelector');
地图运算符中的'order'是Order []而不是Order。 我在做什么错了?
答案 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)
))
);
这是您可以使用的另一种解决方案