ter*_*res 2 javascript momentjs
我有一个对象列表,其中包含一个名为的属性created:
let objs = [
{ id: "1", created: "2019-02-12 00:00:00" },
{ id: "2", created: "2018-02-12 00:00:00" },
{ id: "3", created: "2017-02-12 00:00:00" },
{ id: "4", created: "2016-02-12 00:00:00" },
{ id: "5", created: "2015-02-12 00:00:00" }
]
Run Code Online (Sandbox Code Playgroud)
我想要返回所有2019年和月份的记录:02,所以我做了:
var curr_date = moment(moment(), "YYYY-MM-DD");
var in_month = objs.filter((item) => function () {
return (moment(item.created, format).month() == curr_date.month() &&
moment(item.created, format).year() == curr_date.year())
});
Run Code Online (Sandbox Code Playgroud)
问题是in_month总是返回整个数组,为什么?预期输出应为id为1的记录
只是修复了一点,问题是你的过滤器函数评估了function()你传递而不是执行它,删除它的工作原理:
let objs = [
{ id: "1", created: "2019-02-12 00:00:00" },
{ id: "2", created: "2018-02-12 00:00:00" },
{ id: "3", created: "2017-02-12 00:00:00" },
{ id: "4", created: "2016-02-12 00:00:00" },
{ id: "5", created: "2015-02-12 00:00:00" }
]
let format = "YYYY-MM-DD"
var curr_date = moment(moment(), format);
var in_month = objs.filter(item =>
moment(item.created, format).month() == curr_date.month() &&
moment(item.created, format).year() == curr_date.year()
);
console.log(in_month)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |