gpt4 book ai didi

javascript - 从 Observable 数组 Angular 中选择元素

转载 作者:行者123 更新时间:2023-11-28 05:18:52 24 4
gpt4 key购买 nike

我正在查询 API 并尝试从它返回的数组中获取特定元素。

我查询 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$;
}

我想调用filter来查找rn值与num参数匹配的一个元素。我知道这是不对的,因为我收到了两个错误:

Property 'rn' does not exist on type 'T[]'

Type 'T[]' is not assignable to type 'T'

有没有办法可以访问 T[ ] 数组来检查每个元素的属性,然后返回与给定谓词匹配的元素?就目前情况而言,我正在使用 T 的 Observable 数组,但我想返回一个只有 一个 T 的 Observable。

供引用,另外两个函数:

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

最佳答案

我发现这里有问题。

  • 返回类型应为:

Observable<Array<T>>

  • 将“any”添加到过滤函数中:

.filter(x => Number.parseInt((<any>x).rn) === num)

关于javascript - 从 Observable 数组 Angular 中选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40733933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com