Angular2 RxJs Observables: filter vs map?

angular, observable, rxjs, typescript

Solution

- Filter: Removes emitted data from the stream.

- Map: Transforms it.

They do the exact same as the corresponding `Array` methods.

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

Maybe this site helps to understand the difference: https://www.learnrxjs.io/

Problem

Both the Filter and Map `rxjs` functions seem to be ways to manipulate a `rxjs Observable`'s stream. After tinking with them and from examples I've seen, they both seem to do the same thing. What's the difference and when should I use one over the other?

Original source