我有这个
public getRouteData(): BehaviorSubject<string[]> {
return this.routeData;
}
我想把它映射到一个{name: r}
的观察点,其中r
是string[]
public gridData: BehaviorSubject<any[]> = new BehaviorSubject([]);
我想将string[]
和map映射到对象{name: r}
的数组,其中r
是数组项,这样我就可以将对象数组绑定到网格中。
无论如何不能正确排序或语法。
尝试getRouteData().map(r => ({name: r})).subscribe(r => this.gridData.next(r));
,但这不正确,因为我最终使用{name:string[]}
代替[{name:string}]
有人可以帮忙吗?
谢谢!
答案 0 :(得分:7)
如果我理解正确,我认为你正在寻找:
getRouteData() // => Observable<string[]>
.map(r => r.map(v => ({name: v}))) // => Observable<{ name: string }[]>
.subscribe(r => this.gridData.next(r));
外部map(...)
迭代从您的observable发出的每个值。因此,r
的类型为string[]
。
内部map(...)
正在迭代r
数组中的每个元素,并将string
转换为{ name: string }
类型。