2016-10-09 6 views
0

私は達成しようとしていることはHTTPパッチや深い拡張機能に似ていると思っていますが、私はrxjsでそれを実現したいと思います。私は次のオブジェクトを持っていると言う:RXJSのパッチオブジェクト

const arr1 = { 
    obj1: { a: 'dog', b: 'cat', c: 'bird' }, 
    obj2: { a: 'boy', b: 'girl', c: 'guitar' }, 
    obj3: { a: '1', b: '2', c: '3' } 
} 

const arr2 = { 
    obj1: { a: 'wolf', b: 'lion', c: 'hawk', z: 'bear' }, 
    obj2: { c: 'car'} 
} 

私は、次のような出力を得るためにrxjsを使用したい:

const output = { 
    obj1: { a: 'wolf', b: 'lion', c: 'hawk', z: 'bear' }, 
    obj2: { a: 'boy', b: 'girl', c: 'car' }, 
    obj3: { a: '1', b: '2', c: '3' } 
} 

これを達成するための効率的な方法はありますか?

+1

を使用することができますAn API for asynchronous programming with observable streams

ですあなたの事件をさらに説明できますか?ここでRxJSを使う理由は何ですか?現時点ですべてのデータがオブジェクトであり、利用可能な場合は、RxJSと何が関係しているのかわかりません。深いマージ/エクステンションは、さまざまなフレーバーの束に入っています(オブジェクトではなく配列のオブジェクトです)。 – estus

答えて

1

RxJSは、オブジェクトをマージするためではない、それはあなたがオブジェクトをマージしたい場合は、Lodash merge

var object = { 
    'a': [{ 'b': 2 }, { 'd': 4 }] 
}; 

var other = { 
    'a': [{ 'c': 3 }, { 'e': 5 }] 
}; 

_.merge(object, other); 
// => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } 

またはオブジェクト広がり演算子(正式にはサポートされません) https://babeljs.io/docs/plugins/transform-object-rest-spread/