0

我有两个可观察的数组:第一个数组对象可观察

 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 值匹配,就从该对象获取 lastname。

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

1 回答 1

0

看起来您正在使用 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

于 2018-05-16T09:22:18.553 回答