RxJS 4 中有两件事使这变得简单:map 和 Rx.helpers.defaultComparer。first map 分别从可迭代中发送每个项目,defaultComparer 将为您进行深度检查。
var comparer = Rx.helpers.defaultComparer;
const Observable = Rx.Observable;
const arr = [
{
name: 'foo',
filter: Observable.of(true)
},
{
name: 'bar',
filter: Observable.of(false)
}
];
const data$ = Observable.from(arr)
.map(each => each)
.filter(each => comparer(each.filter, Observable.of(true)))
.subscribe(x => console.log(x));
// prints Object {name: "foo", filter: FromArrayObservable} to my console
出于某种原因,这个 defaultComparer 目前不在五个中。也许这个助手有一个新名称,因为它在 4 中没有被弃用,或者它还没有被迁移或者不在 .helpers 中。