我有两个给定的类SgFormsBase
和QuestionBase
,它们的成员名称略有不同,我想将其中一个的observable[]
转换为另一个。
import { of, Observable } from 'rxjs'
import { map} from 'rxjs/operators'
class SgFormsBase{
constructor(
public id: number,
public survey: string
){}
}
class QuestionBase{
constructor(
public qid: number,
public qsurvey: string
){}
}
const a = new SgFormsBase(11, 'Endo')
const b = new SgFormsBase(12, 'Kolo')
const sg = of([a, b] )
function toQuestionsBase(sgforms: Observable<SgFormsBase[]>): Observable<QuestionBase[]> {
return sgforms.pipe(map(
sgform => new QuestionBase(sgform.id, sgform.survey)))
}
toQuestionsBase(sg)
发布于 2019-04-05 23:58:46
由于源可观测对象是SgFormsBase[]
的可观测对象,因此它发出的每个值都是一个完整的数组。因此,可观察的map
运算符接收整个数组。在observable map
运算符内部需要另一个数组映射运算符。
function toQuestionsBase(sgforms: Observable<SgFormsBase[]>): Observable<QuestionBase[]> {
return sgforms.pipe(map(
sgforms => sgforms.map(sgform => new QuestionBase(sgform.id, sgform.survey))))
}
https://stackoverflow.com/questions/55538941
复制相似问题