我现在尝试按数组时间过滤时间时遇到麻烦,我有这样的代码;
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的结构。
我该如何解决这个问题?请帮我。
谢谢 :)
最佳答案
如果您需要找到小于或等于给定值的最接近的单个值,则只需对代码进行少量更新即可:
function getTime(timeNow) {
var timeShift = ["08", "10", "12", "14", "16", "18", "20", "22", "00", "02", "04", "06"];
var newTime = '00';
for (var data of timeShift)
if (data <= timeNow && data >= newTime)
newTime = data;
return newTime;
}
console.log(getTime('08'));
console.log(getTime('07'));
console.log(getTime('09'));
console.log(getTime('23'));
关于javascript - 现在在数组时间范围内过滤数组javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52975062/