假设我们希望创建一个发出计数的可观察对象。例如,我们可能有一个let todos:Observable<todo[]>
,并且我们想知道其中有多少个实例的completed
属性设置为true。所以:
let count = todos.pipe() //do the count
答案 0 :(得分:1)
todos
观测值发出的是待办事项数组,因此您可以使用map
运算符将数组映射到它包含的已完成待办事项的数量。
要计算完成的待办事项数量,可以在Array.prototype.reduce
运算符中使用map
:
import { map } from 'rxjs/operators';
// ...
const completed = todos.pipe(
map(ts => ts.reduce(
(total, t) => total + (t.completed ? 1 : 0),
0
))
);