首页 > 解决方案 > 如何过滤数组中的最后一天?

问题描述

我有一个这样的对象数组:

[
    {
        created: "2019-08-14T13:24:36Z",
        email: "test1@gmail.com"
    },
    {
        created: "2019-08-15T13:24:36Z",
        email: "test2@gmail.com"
    },
    {
        created: "2019-08-16T13:24:36Z",
        email: "test1@gmail.com"
    },
    {
        created: "2019-08-22T13:24:36Z",
        email: "test4@gmail.com"
    },
    {
        created: "2019-08-22T15:29:66Z",
        email: "test1@gmail.com"
    }
]

数组按 排序created。我想要filter那些在最后一天的记录,与那天的时间无关。我使用添加了时间戳moment.js。这些线上的东西:

router.get('/GetLastDayRecords', (req, res) => {
    res.json(allRecords.filter(record => record.created.max()));
});

标签: javascriptnode.jstypescriptdatemomentjs

解决方案


拆分任务:首先获取排序数组末尾的最大日期(只需获取其中的“YYYY-MM-DD”部分就足够了),然后启动过滤器:

let max = allRecords.length ? allRecords[allRecords.length-1].created.slice(0,10) : "";
res.json(allRecords.filter(({created}) => created >= max));

推荐阅读