Javascript 使用RxJS按属性状态计数?
假设我们希望创建一个发出计数的可观察对象。例如,我们可能有一个Javascript 使用RxJS按属性状态计数?,javascript,typescript,rxjs,Javascript,Typescript,Rxjs,假设我们希望创建一个发出计数的可观察对象。例如,我们可能有一个let todos:Observable,我们希望知道有多少实例的completed属性设置为true。因此: let count = todos.pipe() //do the count todoobservable发出的值是todo的数组,因此您可以使用map操作符将数组映射到它包含的已完成todo的数量 要计算已完成TODO的数量,可以在映射操作符中使用Array.prototype.reduce: 从'rxjs/oper
let todos:Observable
,我们希望知道有多少实例的completed
属性设置为true。因此:
let count = todos.pipe() //do the count
todo
observable发出的值是todo的数组,因此您可以使用map
操作符将数组映射到它包含的已完成todo的数量
要计算已完成TODO的数量,可以在映射
操作符中使用Array.prototype.reduce
:
从'rxjs/operators'导入{map};
// ...
const completed=todos.pipe(
映射(ts=>ts.reduce(
(总计,t)=>总计+(t.完成?1:0),
0
))
);
您可以使用.scan
或.reduce
操作符。todos.pipe(map(ts=>ts.reduce((total,t)=>total+(t.completed?1:0),0))
@cartant将其添加为答案是的好答案!