Сопоставление двух наблюдаемых объектов данных с combLatest - PullRequest
0 голосов
/ 16 мая 2018

У меня есть два наблюдаемых массива: Первый наблюдаемый объект массива

 array1= Observable.of({
      data: [
      {
          name: 'test',
          lastname: 'last'
        },
         {
          name: 'test1',
          lastname: 'last1'
        }
      ]
    }).map(res => {
      return res.data;
    });



// Second Observable:
    array2 = Observable.of('test1');

Ожидаемый результат от двух вышеупомянутых массивов состоит в том, что, где firstname совпадает со значением array2, получают фамилию из этого объекта.

//Expected Result: 
object3=Observable.of('last')

1 Ответ

0 голосов
/ 16 мая 2018

Похоже, вы используете RxJS 5.4, поэтому вы можете сделать это, например, так:

Observable.combineLatest(array1, array2)
  .map(([users, name]) => {
    const user = users.find(u => u.name === name);
    return user ? user.lastname : null;
  })
  .subscribe(console.log);

См. Демонстрационную версию в реальном времени: https://stackblitz.com/edit/rxjs5-4nyq3s?file=index.ts

...