Angular 如果值存在于另一个可观察值中,则修改可观察值

Angular 如果值存在于另一个可观察值中,则修改可观察值,angular,rxjs,Angular,Rxjs,我想比较两个可观测值,如果第二个可观测值中存在值,则修改源可观测值 例如: [ { value: 3 } ] [ { value: 1 exists: false }, { value: 2 exists: false }, { value: 3 exists: true } ] 像这样的东西行吗 let obs2$ = Rx.Observa

我想比较两个可观测值,如果第二个可观测值中存在值,则修改源可观测值

例如:

[

    {
      value: 3
    }
]


[
    {
      value: 1
      exists: false
    },
    {
      value: 2
      exists: false
    },
    {
      value: 3
      exists: true
    }
]

像这样的东西行吗

let obs2$ = Rx.Observable.of(2,4,6,8);

let obs1$ = Rx.Observable.of(1, 2, 3, 5, 6, 7)
         .switchMap(x=> obs2$
                        .first(v => v===x, v=>true, false)
                        .map(exist => ({exist:exist, value:x})))
        .subscribe(x=>console.log(x))

这是朝着正确的方向发展的,我觉得,如何根据您提供的数字返回一个类似于[{1,false},{2,true},{3,false},{5,false},{6,true},{7,false},{8,false}]的数组。{1,false}是不正确的javascript对象。javascript有key:value格式,其中key是字符串。你不能那样返回它。我的意思是像这样[{value:2 exists:false},{value:3 exists:true}]还有一个不同的操作符