RxJS5: как отображать и фильтровать за один раз - как «собирать» в Scala?

В моем кодировании Scala я нашел метод collect довольно полезным. Это позволяет одновременно фильтровать и преобразовывать элементы.

В RxJS вроде ничего такого нет. Я пропустил что-то очевидное, или это считается ненужным?

Помощник, который я сделал, тривиален:

https://github.com/akauppi/svg.rx.js/blob/master/src/svg.rx.js#L27-L42


person akauppi    schedule 31.01.2016    source источник


Ответы (1)


Другого пути, кроме .filter(someFn).map(otherFn), нет. Я полагал, что это можно было бы добавить (я участник)... но польза была бы минимальной. Они уже в основном действуют как преобразователи и чрезвычайно эффективны. Если вы сделаете что-то вроде: Observable.from([1,2,3,4]).filter(x => x % 2).map(x => x + '!!!'), массив будет прокручиваться только один раз. В отличие от Array.filter.map, где вы проходите через него (возможно) дважды.

Я надеюсь, что это отвечает на ваш вопрос. Если вы считаете, что это должна быть функция, предложите проблему, и сообщество сможет ее обсудить, но моя интуиция подсказывает мне, что это, вероятно, не необходимая оптимизация.

person Ben Lesh    schedule 05.02.2016
comment
Спасибо за подтверждение. Я просто хотел убедиться, что ничего не пропустил. - person akauppi; 06.02.2016