在一个 View 中,我从基于 mongoDB/Node 的 API 中提取一组客户端记录,并将它们打印到我的 Angular 应用程序的屏幕上。现在我想创建另一个 View ,其中返回这些记录的过滤列表。
具体来说,我想返回一个客户记录列表,这些记录在对象上具有属性“exitDate”的值。这里的想法是,如果有一个 exitDate(即值不为 null),那么这意味着该记录是一个“非事件”结果。
原始记录集合是通过 OnInit 生命周期中的可观察对象生成的,如下所示:
this.clientService.getAll()
.subscribe(resRecordsData => this.clients = resRecordsData,
responseRecordsError => this.errorMsg = responseRecordsError);
为此,我尝试使用过滤器功能。这是我的:
isInactive() {
this.inactiveClients = this.clients.filter(exitDate => !!exitDate);
}
可以这样处理吗?此过滤器函数是否会返回具有属性“exitDate”值的对象并排除那些不具有值的对象?
最佳答案
你几乎是对的,但是过滤器函数会给你每个对象作为参数,你需要寻找属性及其值,所以它会是这样的:
this.clients.filter(client => client.exitDate !== null);
数组的 filter 方法遍历数组并为其每个项目执行回调,因此您在回调中获得的第一个参数是项目本身。
在这种情况下,您想要检查 exitDate 属性并在它不为空时返回“true”。
关于javascript - 使用过滤器函数从 API 返回过滤结果列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42839540/