1
我正在查询一个API并试图从它返回的数组中获取特定的元素。从Observable array Angular中选择元素
我查询API并返回一个JSON响应。我送经.MAP调用每个对象映射在响应T.
getOne(num: number): Observable<T> {
let t$ = this.http
.get(`${this.API_URL}?${this.getParams()}`)
.map(mapToTypeT)
.filter(x => Number.parseInt(x.rn) === num)
return t$;
}
我想打电话给过滤器找到了具有与num参数相匹配的值RN的一个元素的功能响应。我知道这是不对的,因为我得到两个错误回:
Property 'rn' does not exist on type 'T[]'
Type 'T[]' is not assignable to type 'T'
有没有一种方法可以让我达到到T []数组来检查每个元素的属性,然后返回匹配的元素给定的谓词?因为它代表我与T的可观察到的阵列工作,但我想回到一个可观察的只是一个 T.
为基准,其他两个功能:
function mapToTypeT(response:Response): T[]{
return response.json().map(t => toT(t))
}
function toT(r:any): T{
let t = <T>({
staId: r.staId,
stpId: r.stpId,
staNm: r.staNm,
stpDe: r.stpDe,
rn: r.rn,
});
return t;
}