2016-10-24 78 views
3

過濾器和映射rxjs函數似乎都是操縱rxjs Observable的流的方法。在與他們交流之後,我從他們的例子中看出,他們似乎都做了同樣的事情。Angular2 RxJs Observables:filter vs map?

有什麼區別,我應該什麼時候使用一個?

回答

12
  • 過濾器:從流中移除發射的數據。
  • 地圖:轉換它。

它們的做法與相應的Array方法完全相同。

E.g.

const stream = Observable.of([1,2,3,4,5]); 

stream 
    .map(x => x * 2) 
    .subscribe(x => console.log(x)); // 2,4,6,8,10 

stream 
    .filter(x => x > 3) 
    .subscribe(x => console.log(x)); // 4,5 

也許這個網站可以幫助理解上的差異:https://www.learnrxjs.io/

+2

我也建議這樣的:http://reactivex.io/rxjs/。參考['.map'](http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-map)和['.filter'](http:// reactivex .IO/rxjs /類/ ES6/Observable.js〜Observable.html#實例方法濾波器)。 –

+0

嘿謝謝你,謝謝你的資源。 – garrettmac