javascript - 使用 forEach 过滤数组
问题描述
我有一系列日期,我想过滤掉特定的日期。这是我以前的解决方案,效果很好:
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;
});
});
这似乎不起作用。我做错了什么,我怎样才能让它发挥作用?提前致谢。
解决方案
无需使用forEach
usefilter
和includes
var unavailable = [0, 2, 3, 6]
var dates = ['1-1-2019', '1-2-2019', '1-3-2019', '1-4-2019',' 1-5-2019', '1-6-2019', '1-7-2019', '1-8-2019',' 1-9-2019'];
workingDays = dates.filter(e => {
return !unavailable.includes(new Date(e).getDate())})
console.log(workingDays)
推荐阅读
- symfony - React Native Axios 发布请求在本地主机上不起作用
- c++ - 如何在 VS Code 中创建 C++ 项目并链接 main、functions 和 header?
- asynchronous - 从 NETCore Windows 服务异步调用非静态方法
- java - 如何在 Windows 10 上的 Android Studio 上实现 Nao 机器人 V3 和 Android 应用程序之间的通信?
- c# - Dictionary 使用的默认 StringComparer
- python - 如何从元组列表中创建元组值之间的差异列表
- vb.net - 日期时间算术运算
- javascript - 我们如何使用 now() 函数计算传送带在节点红色中每次启动和停止之间的运行时间?
- python-3.x - 如何解决“ValueError:检查目标时出错:预期dense_20的形状为(24,)但数组的形状为(1,)”?
- vue.js - 从 main 调用组件的方法