私はRxJSを初めて使っています。私はちょうど.filter
と.map
私が探している変更を得るために観察できることを知っています。しかし、2つを1つの関数に組み合わせる方法はありますか?地図とフィルターを組み合わせたRX方式はありますか?
答えて
はいあります。
FlatMap。
Observable of numbers(1,2,3,4,5、...)があり、偶数をフィルタリングしてx * 10にマッピングしたいとします。
var tenTimesEvenNumbers = numbers.flatMap(function (x) {
if (x % 2 === 0) {
return Rx.Observable.just(x * 10);
} else {
return Rx.Observable.empty();
}
});
答えをありがとう - 私はあなたがフラットマップ上のドキュメントからこれを行うことができるとは決して認識しませんでした。私は@ paulpdaniels答えを選択していますが、それはより機能的です。 –
あなたはどんな意味でもっと機能的な意味ですか? –
この例では、フィルター操作は 'if'ステートメントの括弧で行う必要があります。操作に何度も適用したい共通のフィルタ関数を持っているとしますが、それでもやることはできますが、複数のif()文を書くことになります。さらに、毎回それを呼び出す必要があります。 フィルタとマップ関数を別々の引数として渡すことができる解決策がある方がはるかにクリーンです。私の考えでは、そのようなコーディングスタイルを可能にする解決策はより機能的です。 –
いいえありません。
しかし、1つを追加するのは簡単です。
Rx.Observable.prototype.filterMap = function (filterFn, selectorFn, context) {
return this.filter(filterFn, context)
.map(selectorFn, context);
}
ありがとうございます。私はこのようなものを加えることを避けたいと考えていましたが、将来的には時間の節約になるかもしれません。 –
- 1. 地図:地域とマーカーを組み合わせる
- 2. RSpecフィルターを組み合わせる?
- 3. スイッチケースを組み合わせる方法がありますか?
- 4. 関数kbhit()とgetch()を組み合わせた関数はありますか?
- 5. 式を組み合わせて選択
- 6. プロパティパスにラムダ式を組み合わせ
- 7. このC#コードを組み合わせる方法はありますか?
- 8. Qt-Creator + Boost Libraryを組み合わせる方法はありますか?
- 9. .net上でforeachsを組み合わせる方法はありますか?
- 10. ビン地図はピンとピンチを合わせます
- 11. 先進的な機能と複数の機能を組み合わせた機能を組み合わせたコントロールはありますか? B
- 12. wgetとPHPを組み合わせた
- 13. jQueryとGoogleアナリティクスの読み込みを組み合わせる方法はありますか?
- 14. OSGiの設計図とバネ構成の組み合わせ
- 15. Tomcatと組み合わせたActiveMq
- 16. LINQグループリストと組み合わせたコレクション
- 17. データウェアハウス:冗長な組み合わせの組み合わせ
- 18. muliまたはSQLを組み合わせる方法
- 19. 文字列と式の補間を組み合わせる
- 20. 無限スクロールを式エンジンと組み合わせる
- 21. Morrisを使用して組み合わせ図(面積と棒グラフ)を組み合わせることは可能ですか?
- 22. iOS5はCGAffineTransformとanimationImagesを組み合わせますか?
- 23. 透明性と "ajaxユーザビリティ"をHTMLテンプレートと組み合わせる方法はありますか
- 24. 2つのSELECT式を両方ともLIMITと組み合わせる
- 25. PHPを組み合わせた配列
- 26. Railsでフィールドを組み合わせた
- 27. ユーザー名のパスワードの組み合わせのみをチェックするMembership.ValidateUser()の代替方法はありますか?
- 28. mod_accessとmod_authを組み合わせる
- 29. * -servlet.xmlとapplicationContext.xmlを組み合わせる
- 30. DIとコンストラクタパラメータを組み合わせる?
振り返ってみると、フィルタとマップを1回の操作として試してみる理由はほとんどありません。他の誰かが「RxJSの初心者」であり、私の質問がある場合は、これらの回答を取ってはいけません。ちょうどフィルタリングして、マップしてください。 –