[英]Angular filter objects array for multiple values
我有以下方法可以过滤输入字段的对象(具有其他对象的数组):
filterArray(): void {
this.json.items.filter((e) => e.assignedPool != null || e.assignedPool !== undefined);
this.json.items = this.json.items.filter((e) => e.name.includes(this.filter));
}
现在,我想过滤另一个变量。 这是objecs层次结构:
过滤后的json变量:
export class VirtualServerResponse {
private _kind: String;
private _items: VirtualServer[];
虚拟服务器:
//...properties
private _assignedPool: PoolDTO;
一个游泳池:
//properties
private _membersReference: MembersReferenceDTO;
成员参考:
export class MembersReferenceDTO {
constructor() {}
private _link: String;
private _isSubcollection: String;
private _items: PoolMemberDTO[];
和一个PoolMember:
export class PoolMemberDTO {
constructor() {}
private _address: String;
现在,我希望也可以过滤PoolMember的地址,因此当filter
匹配任何PoolMember的地址时,类似
this.json.items.foreach((item) =>
item.assignedPool.membersReference.items.foreach(member) =>
member.address == this.filter)
我想过滤json.items
数组,所以该数组包含:
有人可以帮我吗?
更新:
Server name: test server
Assigned pool -> membersReference ->items[]
items[0]: 10.10.10.2
items[1]: 10.10.10.3
...因此,如果过滤器为10.10.10.3,则服务器“测试服务器”应位于json.items
我们可以检查memberReference项目以查看是否存在与过滤器匹配的地址。
filterArray(): void {
this.json.items = this.json.items.filter((e) =>
(e.assignedPool !== null && e.assignedPool !== undefined)
&& (e.name.includes(this.filter) || e.assignedPool.membersReference.items.find((m) => m.address === this.filter));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.