Angular2 可观察过滤器

Angular2 Observable Filter

我想过滤一个可观察对象,但得到了意想不到的结果。

我正在使用以下导入语句:

import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/of';

这个例子returns什么都没有:

Observable.of([0, 1, 2, 3, 4, 5])
.filter((x: any) => x % 2 === 0)
.subscribe(data => console.log(data));

这个例子returns整个结果集[0,1,2,3,4,5]:

Observable.of([0, 1, 2, 3, 4, 5])
.filter((x: number[], idx) => x[idx] % 2 === 0)
.subscribe(data => console.log(data));

有人看到我遗漏的语法错误吗and/or?谢谢!

如果要将值作为可迭代的(当前情况下为数组)传递,则需要使用 from

import 'rxjs/add/observable/from';

Observable.from([0, 1, 2, 3, 4, 5])
.filter((x: any) => x % 2 === 0)
.subscribe(data => console.log(data));

或者,如果您想坚持 of 将值作为参数传递

Observable.of(0, 1, 2, 3, 4, 5)
.filter((x: any) => x % 2 === 0)
.subscribe(data => console.log(data));