如何在打字稿中显示从数组中过滤的对象列表?
Posted
技术标签:
【中文标题】如何在打字稿中显示从数组中过滤的对象列表?【英文标题】:How do I display a filtered list of objects from an array in typescript? 【发布时间】:2019-11-26 22:12:54 【问题描述】:如何从我的 BED ARRAY 显示经过过滤的 BED 对象列表?我只需要一个简单的过滤器(bStatus = "Available")供循环参考。
我的 BED 对象有一个床位状态,显示它是可用的还是已占用的(对于医院系统),我希望它只显示可用的床位。 (当 bStatus == “可用”时)
代码提供了来自我的 component.ts 的 NgOnInit() 的一部分,我能够显示所有可用的床,但由于我是 Angular 和 Typescript 的新手,我不知道如何将过滤器添加到我的代码。
this.bedService
.query()
.pipe(
filter((mayBeOk: HttpResponse<IBed[]>) => mayBeOk.ok),
map((response: HttpResponse<IBed[]>) => response.body),
)
.subscribe((res: IBed[]) => (this.beds = res), (res: HttpErrorResponse) => this.onError(res.message));
预期的输出应该是 bStatus = "Available" 的床位列表。现在它显示了我数组中的所有床位,包括 bStatus = "Available" 和 "Occupied"。
【问题讨论】:
【参考方案1】:您只需运行Array.filter() 即可获取可用床位。
.subscribe((res: IBed[]) =>
this.beds = res.filter(obj => obj.bStatus === 'Available');
)
【讨论】:
谢谢,我要替换这个吗(this.beds = res)? @Ken 是的,你可以 如果我想放置多个过滤器,我应该使用 && 像 obj.bStatus === 'Available' && obj.Type = 'A' 吗? Angular 中的 && 运算符合法吗? @Ken 是的,有效的语法是 javascript 和 TypeScript。基本上,您可以将过滤器回调更改为:res.filter(obj => obj.bStatus === 'Available' && obj.Type = 'A');
我已经尝试过了,它没有返回任何东西,obj.bStatus === 'Available' 有效,但如果我添加另一个参数,代码会中断。你知道它的背后可能是什么吗?以上是关于如何在打字稿中显示从数组中过滤的对象列表?的主要内容,如果未能解决你的问题,请参考以下文章