通过循环向数组添加日期

时间:2012-11-09 02:38:27

标签: 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);
    console.log(currentDate);
    dates.push(currentDate);
}
console.log(dates);

2 个答案:

答案 0 :(得分:4)

var currentDate = new Date(); 移到for循环中。否则,您修改同一个对象并在数组中添加50个引用。

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

答案 1 :(得分:1)

你可以像Yogendra建议的那样做,或改变:

> dates.push(currentDate);

dates.push(new Date(currentDate));

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