[英]While loop not behaving as expected using Dates objects
我正在制作一個數組,該數組以40分鍾的間隔存儲開始時間和之后的時間。
基本上檢查一下,將開始時間添加到數組,然后遞增重復。
//Array Of All Available times.
var timeArray = [];
//Start time this begins with 9:00
var startTime = new Date(`date setup here`);
//End Time this is 17:00
var endTime = new Date(`date setup here`);
while (startTime < endTime) {
//Push Start Time to Array
timeArray.push(startTime);
//Add 40 minutes to startTime
startTime = new Date(startTime.setMinutes(startTime.getMinutes() +40));
}
以下是日志的屏幕截圖:
開始和結束時間:
數組的日志:
在數組中,我發現奇怪的是,為什么初始開始時間9不是索引0,為什么最后一個索引是結束時間,而while時間循環條件失敗了。
在您的循環中:
while (startTime < endTime) {
//Push Start Time to Array
timeArray.push(startTime);
//Add 40 minutes to startTime
startTime = new Date(startTime.setMinutes(startTime.getMinutes() +40));
}
最后一行在將新的Date分配給變量之前 修改了startTime
Date對象。 因此,當.push()
發生時,日期是正確的,但它會在循環的最后一行中更改。
相反,請先創建一個新日期,然后再進行更改:
while (startTime < endTime) {
//Push Start Time to Array
timeArray.push(startTime);
//Add 40 minutes to startTime
startTime = new Date(startTime);
startTime.setMinutes(startTime.getMinutes() +40));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.