您好,我试图生成一天中每小时的数组。但是,我希望它从当前时间开始。
例如,
如果当前时间是下午2:00,则数组应该开始:
[' 1400',' 1500',' 1600',1700',' 1800',' 1900& #39;,' 2000',' 2100',' 2200',' 2300']
而不是
[' 0000',' 0100',' 0300',' 0400',' 0500',& #39; 0600',' 0700',' 0800',' 0900',' 1000',' 1100&# 39;,' 1200',' 1300',' 1400',' 1500',' 1600',1700&# 39;,' 1800',' 1900',' 2000',' 2100',' 2200',&# 39; 2300']
答案 0 :(得分:2)
非常直截了当。请参阅内联评论:
var result = []; // Results will go here
var nowHour = new Date().getHours(); // Get current hour of the day
// Loop from current hour number to 23
for(var i = nowHour; i < 24; i++){
result.push(i + "00"); // Put loop counter into array with "00" next to it
}
console.log(result); // show results
答案 1 :(得分:1)
您可以使用fill
的{{1}}和map
像下面的东西。
Array.Prototype
Array(24-new Date().getHours()).fill().map((e,i)=>i+new Date().getHours());
答案 2 :(得分:0)
可以在单个语句中合理有效地完成,包括在10:00之前的小时前导零,并且通常使用带有可选回调的 Array.from ,例如
console.log(
Array.from(Array(24-new Date().getHours()),(x,i)=>('0'+(23-i)).slice(-2)+'00').reverse()
);
不幸的是它仍然会创建2个数组,第一个是所需长度的空数组,然后用于生成具有所需值的第二个数组,因此不会影响性能。
如果 forEvery 方法没有以相同的方式跳过不存在的属性来自,那么它可能只有一个数组(就像for循环一样)。