gpt4 book ai didi

javascript - 为什么第一个日期没有被添加到数组中

转载 作者:行者123 更新时间:2023-11-30 08:39:43 24 4
gpt4 key购买 nike

为什么第一个日期没有被添加到这个数组中?

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com