假设我们希望创建一个发出计数的 observable。例如,我们可能有一个let todos:Observable<todo[]>
并且我们希望知道这些实例中有多少将completed
属性设置为 true。所以:
let count = todos.pipe() //do the count
假设我们希望创建一个发出计数的 observable。例如,我们可能有一个let todos:Observable<todo[]>
并且我们希望知道这些实例中有多少将completed
属性设置为 true。所以:
let count = todos.pipe() //do the count
todos
observable 发出的值是待办事项的数组,因此您可以使用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
))
);