Rxjs 是否有结合map和过滤器的接收方法?

Rxjs 是否有结合map和过滤器的接收方法?,rxjs,Rxjs,我是RxJS的新手。我知道我可以通过.filter和.map一个可观察的对象来获得我正在寻找的更改。但是,有没有什么方法可以将这两种功能结合为一个功能呢?有 平面图 假设你有一个可观察的数字(1,2,3,4,5,…),你想过滤偶数并将它们映射到x*10 var tenTimesEvenNumbers = numbers.flatMap(function (x) { if (x % 2 === 0) { return Rx.Observable.just(x * 10); } el

我是RxJS的新手。我知道我可以通过
.filter
.map
一个可观察的对象来获得我正在寻找的更改。但是,有没有什么方法可以将这两种功能结合为一个功能呢?

平面图

假设你有一个可观察的数字(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();
  }
});

谢谢你的回答-我从来没有意识到你可以从flatMap上的文档中做到这一点。我之所以选择@paulpdaniels answer,是因为它更具功能性。你是说在什么意义上更具功能性?我的意思是,在本例中,筛选操作必须在
if
语句的参数中完成。假设您有一个公共筛选函数,您希望多次应用于该操作,您仍然可以这样做,但您需要编写多个if()语句。此外,每次都需要调用它。如果有一个可以将过滤器和映射函数作为单独的参数传递进来的解决方案,那么就更简洁了。在我看来,支持这种编码风格的解决方案更“实用”。阵列也实现了可观察性,因此您可以将其写成
.flatMap(x=>x%2==0?[x*10]:[])
flatMap
现在是
mergeMap
:回顾过去,几乎没有理由尝试将过滤器和映射作为一个操作来使用。如果其他人是“RxJS新手”,看到我的问题,不要接受这些答案。只需过滤,然后映射。