为什么第一个日期没有被添加到这个数组中?
function createArrayOfDates(start, end) {
var dateArray = [];
while(start < end) {
dateArray.push(start);
start = new Date(start.setDate( start.getDate() + 1 ));
}
return dateArray;
}
start = new Date(2015, 01, 01);
end = new Date(2015, 01, 05);
console.log(createArrayOfDates(start, end));
我期望的输出应该包括第一个日期 (2015/01/01),但数组从第二个开始。
有什么想法吗?
最佳答案
因为 Date
不是原始类型,所以它是通过引用传递的。这意味着您需要克隆 start
的值,然后再将其插入结果数组:
dateArray.push(new Date(start));
否则,start
变量和数组中新插入的元素仍将引用相同的值。
参见 MDN
关于javascript - 为什么第一个日期没有被添加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27774772/