javascript - 使用过滤器函数从 API 返回过滤结果列表

标签 javascript angular typescript

在一个 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/

相关文章:

javascript - 如何在运行时在 JavaScript 中生成类型检查?

javascript - $getJSON 和 for 循环问题

angular - 在 angular 4.4 应用程序中获取并加载远程组件/模块

javascript - 如何重启间隔?

Angular - 无法使用 Angular 通用运行 rxjs 间隔

angular - location.go() 没有以 Angular 2 重定向用户

javascript - 在 Typescript 上监听窗口事件(Angular2)

javascript - 在 Node js中使用请求数据

Javascript 闭包在别处定义

javascript - $http 在 Angular 1.4.8 中使用 Rest Controller