【发布时间】:2020-08-19 11:51:03
【问题描述】:
我有一个对象,其中包含一组项目,如下所示:{ a: string, b: string, items: Something[] }。
在我的 observable 中,当发出一个新值时,我希望将项目的先前值与新值连接起来,所以我使用了scan operator。它的作用类似于myObservable$.pipe(scan((acc: any, curr: any) => [...acc.items, ...curr.items]))。
它按预期工作,但是我有一些像(myObservable$ | async)?.a 这样的管道异步,所以我想保持我的对象不变,并且只在这个对象中连接我的项目,但是扫描运算符将我的对象映射到新数组(我完全理解这是正常行为)。
那么如何在没有此映射的情况下连接对象中的数组?
例子:
我有什么:
{
a: 'first',
b: 'first',
items: [{
c: 'bla',
d: 'bla'
}, {
c: 'blabla',
d: 'blabla'
}]
}
和
{
a: 'second',
b: 'second',
items: [{
c: 'second bla',
d: 'second bla'
}]
}
我想要什么:
{
a: 'second',
b: 'second',
items: [{
c: 'bla',
d: 'bla'
}, {
c: 'blabla',
d: 'blabla'
}, {
c: 'second bla',
d: 'second bla'
}]
}
【问题讨论】:
-
你能用一个例子清楚地解释你有什么和你想要什么吗?
-
我刚刚编辑了答案!