【发布时间】:2019-03-07 10:13:24
【问题描述】:
我有一个日期数组,我想在其中过滤掉特定的日期。 这是我以前的解决方案,效果很好:
var available = dates.filter(function(e) {
return (
e.getDay() != 0 && // sunday
e.getDay() != 6 && // saturday
e.getDay() != 2 && // tuesday
e.getDay() != 3 && // wednesday
);
});
现在,我想让这个动态。所以我得到了一个这样的数组:
var unavailable = [0, 2, 3, 6]
然后我尝试像这样过滤掉那些日子:
unavailable.forEach(function(x){
available = dates.filter(function(e, index){
return e.getDay() != x;
});
});
这似乎不起作用。我做错了什么,我怎样才能让它发挥作用?提前致谢。
【问题讨论】:
-
代码中的日期是什么?
-
你必须反过来做:
dates.filter(function() { /* check if .getDay() is part of the array stored in unavailable */ }) -
什么是
dates数组 -
@the_ultimate_developer 我的问题中没有包含日期数组,因为它只是像
[new Date("2019-03-07"), new Date("2019-03-09"), ...]这样生成的数组,然后转到[Mon Apr 01 2019 02:00:00 GMT+0200, Tue Apr 02 2019 02:00:00 GMT+0200, ...]
标签: javascript jquery arrays filter