Javascript 通过循环向数组中添加日期

Javascript 通过循环向数组中添加日期,javascript,date,for-loop,Javascript,Date,For Loop,我将执行一个for循环,在当前日期上添加一个时间,然后将新日期添加到一个数组中。 但是,当我在循环完成后输出数组时,它将填充50个相同日期的实例。 但是,从循环中记录这些日期会显示它们正确递增。 这是否与数据在被推入阵列后被更新有关 var dates = new Array(); var currentDate = new Date(); for (var i =0; i < 50;i++){ currentDate.setDate(currentDate.getDate()+2

我将执行一个for循环,在当前日期上添加一个时间,然后将新日期添加到一个数组中。 但是,当我在循环完成后输出数组时,它将填充50个相同日期的实例。 但是,从循环中记录这些日期会显示它们正确递增。 这是否与数据在被推入阵列后被更新有关

var dates = new Array();
var currentDate = new Date();
for (var i =0; i < 50;i++){
    currentDate.setDate(currentDate.getDate()+2);
    console.log(currentDate);
    dates.push(currentDate);
}
console.log(dates);
var dates=new Array();
var currentDate=新日期();
对于(变量i=0;i<50;i++){
currentDate.setDate(currentDate.getDate()+2);
console.log(当前日期);
dates.push(当前日期);
}
控制台日志(日期);

Move
var currentDate=new Date()内部为循环。否则,您将修改同一对象,并在数组中添加该对象的50个引用


最后,您会看到同一对象使用上次更新的日期值打印了50次。

Move
var currentDate=new date()内部为循环。否则,您将修改同一对象,并在数组中添加该对象的50个引用


最后,您会看到同一对象使用上次更新的日期值打印了50次。

您可以按照Yogendra的建议执行,或者更改:

> dates.push(currentDate);


为数组的每个成员获取不同的日期对象。

您可以按照Yogendra的建议执行,也可以更改:

> dates.push(currentDate);


为数组中的每个成员获取不同的日期对象。

但这不总是在今天之后2天给出一个日期吗?而不是两天相隔50次约会?将
+2
改为
+(2*i)
@Glensayers:你的约会日期是什么?我想你会得到所有50件物品,日期与今天之后100天相同,即2013年2月16日。没错,我是。所以它将同一个对象放入数组50次,所以当我更新一个对象时,它们都被更新了?我现在明白了。谢谢但那不是总是在今天之后两天才有约会吗?而不是两天相隔50次约会?将
+2
改为
+(2*i)
@Glensayers:你的约会日期是什么?我想你会得到所有50件物品,日期与今天之后100天相同,即2013年2月16日。没错,我是。所以它将同一个对象放入数组50次,所以当我更新一个对象时,它们都被更新了?我现在明白了。谢谢