LoginSignup
2
0

More than 5 years have passed since last update.

RXJS scan と filterの違い

Last updated at Posted at 2018-12-10

前提として

Observableに関して学ばなければいけません
https://qiita.com/ryuseikurata/private/6db14969b628e0de1d0c
https://qiita.com/ryuseikurata/private/fa5227a1203af86a19ab
https://qiita.com/ryuseikurata/private/45faa9cd8f50a390b10c

scan

Operatorの一つです。
アキュームレータとメッセージを使って処理することができます。

アキュームレータとは、蓄積されたものという意味です。
observableのscanでは、処理した返り値をアキュームレータとします。

const array = of(1,2,3)

//accがアキュームレータ、curがメッセージです。
//メッセージの1を処理するとき、蓄積がないので、acc は 0となります。
//メッセージの2を処理するとき、蓄積は` 1(0 + 1) `なので、acc は 1となります。
//メッセージの3を処理するとき、蓄積は` 3(1 + 2) なので、acc は 3となります。
const scan = array.pipe(
   scan( (acc, cur) => acc + cur ) 
 );
scan.subscribe(val => console.log(val));

1
3
6

filter

Operatorの一つです。
メッセージをフィルタリングしてくれます。
filiterのなかで、trueになったもののみを返します。

const array = of(1,2,3);

//メッセージが、奇数のものだけを返すようにしています。
const filter = array.pipe(
         filter( num => num % 2 == 1));

filter.subscribe(val => console.log(val));
1
3
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0