使用 RXJS 修补对象
Patch objects with RXJS
我相信我想要实现的类似于 HTTP 补丁或深度扩展功能,但我想用 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' }
}
有没有有效的方法来实现这个?
RxJS不是用来合并Object的,是一个API用来异步编程的
具有可观察的流
如果你想合并对象你可以使用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 }] }
或者Object spread operator(官方不支持)
https://babeljs.io/docs/plugins/transform-object-rest-spread/
我相信我想要实现的类似于 HTTP 补丁或深度扩展功能,但我想用 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' }
}
有没有有效的方法来实现这个?
RxJS不是用来合并Object的,是一个API用来异步编程的 具有可观察的流
如果你想合并对象你可以使用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 }] }
或者Object spread operator(官方不支持) https://babeljs.io/docs/plugins/transform-object-rest-spread/