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;
}