【发布时间】:2022-01-22 00:51:11
【问题描述】:
我有一个包含一些数据的 observable。
我还有一个获取 1 个特定字段的方法:
getField(fieldName: string) {
return this.response$.asObservable().
pipe(
map(data => data[fieldName]),
take(1)
)
}
------------------------------------------------
getFirstNameGroup(): Observable<any> {
return this.service.getField('first_name'); // returns current field's properties as an object
}
我不仅要传递一个字段名称,还要传递许多字段名称,如下所示:
getFields(fieldNames: string[]) {
return this.response$.asObservable().
pipe(
map(data => fieldNames.map(field => data[field])),
take(1)
)
}
------------------------------------------------
getPersonName(): Observable<any> {
// returns an array of objects where indexes 0 and 1 are instead of first_name and last_name
return this.service.getFields(['first_name', 'last_name']);
}
我只是不知道我应该在map() 中更改什么才能获得一个像(或类似的东西)的对象:
{
first_name: {...},
last_name: {...}
}
谢谢:)
【问题讨论】:
-
查看reduce而不是map
-
感谢两位的提示! @munleashed,它有效,但 Lukasz Gawrys 的解决方案看起来更干净,我猜 :)
标签: angular typescript rxjs observable