javascript - 现在在数组时间和时间范围内过滤数组
问题描述
当我现在尝试在数组时间中过滤时间时遇到了一些麻烦,我有这样的代码;
var timeNow = "07";
var timeShift = ["08","10","12","14","16","18","20","22","00","02","04","06"];
var newData =[];
for(var data of timeShift){
if(data >= timeNow){
newData.push(data);
}
}
console.log(newData[0]); // output 08
问题是输出与我的期望不同。
我想要:
如果timeNow是08,timeShift输出(选择)是08,
如果timeNow是07,timeShift输出(选择)是06,
如果timeNow是09,timeShift输出(选择)是08,
如果timeNow是23,timeShift输出(选择) 是 22,
. . . . . . . 继续作为数据timeNow和timeShift的结构,就像我在那里的期望一样。
我该如何解决这个问题?
请帮我。谢谢 :)
解决方案
您可以通过使用 numericak 值进行比较和减一的值进行检查来过滤值。
const getN = s => parseInt(s, 10),
check = (strong, weak) => strong === weak -1 || strong === weak;
var timeNow = "07",
timeShift = ["08","10","12","14","16","18","20","22","00","02","04","06"],
result = timeShift.filter(s => check(getN(s), getN(timeNow)));
console.log(result);
推荐阅读
- three.js - 标记未显示
- go - 我应该为每个 redis 操作创建一个新的 FailOverClient 吗?
- angular - 角度动画第一次工作,但不会在后续调用中运行
- python - 为什么最后一批准确率下降?
- excel - 我是 VBA 编码的新手,我运行此代码并在 (vlookup) 字之前得到编译错误
- python - python opencv如何改变HSV通道中的色调
- reactjs - 如何将 React 应用程序与 filemaker 服务器集成为后端
- informatica - SQL Server 表加载期间出现 Informatica 错误
- powershell - Visual Studio Code 和 /.vscode/task,json 中的启动任务:如何强制它们从 CMD 而不是 Powershell 开始?
- javascript - React native android build failed with error Variant 'debug' has no matching configuration