Объединить значения последовательности - PullRequest
1 голос
/ 07 июня 2019

Предположим, у меня есть следующая последовательность A

  {a:0}        {b:1}        {c:2}
----o------------o------------o---------    [A]


  {a:0}      {a:0, b:1}   {a:0, b:1, c:2}
----o------------o------------o----------   [B]

как объединить значения из последовательности [A] для достижения результата в [B]?

Я пытался использовать операторcellLatest (), но он не работал.

Мне нужно объединять предыдущие значения каждый раз, когда новые значения излучаются

1 Ответ

2 голосов
/ 07 июня 2019

Вы можете использовать scan для агрегирования свойств объекта.

const {of} = rxjs;
const {scan} = rxjs.operators;
   
of({a:0}, {b:1}, {c:2}).pipe(
    scan((acc, next) => ({...next, ...acc}), {})
).subscribe(value => console.log(value));
<script src="https://unpkg.com/@reactivex/rxjs@6.x/dist/global/rxjs.umd.js"></script>

Вы можете изменить порядок с ({...next, ...acc}) на ({...acc, ...next}), если хотите, чтобы предыдущие значения перезаписывались, или если вы хотите, чтобы агрегированные значения перезаписывали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...