为什么第一个日期没有被添加到这个数组?
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));
Run Code Online (Sandbox Code Playgroud)
我期望的输出应包括第一个日期(2015/01/01),但数组从第二个开始.
有任何想法吗?
由于Date它不是原始类型,因此通过引用传递.这意味着在将其推入结果数组之前需要克隆值start:
dateArray.push(new Date(start));
Run Code Online (Sandbox Code Playgroud)
否则,start数组中的变量和新推送的元素仍将引用相同的值.
见MDN
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |