我有一个非常奇怪的问题。我正在创建一个日期对象数组(星期一)
// array to hold week commencing dates
var mondays = [];
mondays.push(today);
var novi = new Date(today);
while(novi < endDate){
var next_monday = new Date(novi.setDate(novi.getDate() + 7));
day_index = next_monday.getDay();
if(day_index == 1){
mondays.push(next_monday);
}
// increment the date
novi = next_monday;
}
console.log(mondays);
更新:感谢您的回复。我在开始时创建了新对象并使用了那个。所以我再次创建空数组,然后在开始循环之前向它添加一个日期,然后循环中的第一个项目不会被添加,即使它被推送。我做错了什么?
这是我从上面得到的console.log。 https://www.dropbox.com/s/04bckfcrwl7yvwd/Screenshot%202016-09-28%2018.29.25.png?dl=0
答案 0 :(得分:12)
today.setDate(today.getDate() + 7)
您正在修改推入阵列的日期对象。
第一项未被删除,正在更改。
var next_monday = new Date(today.setDate(today.getDate() + 7));
然后从中创建一个新的日期对象。
创建新的日期对象优先,然后修改 。