当我从for循环中的while循环中将值推入数组时,它会覆盖数组中的前一个元素。
var startDate = new Date(theoreticalData[0].UpdateDateMDY);
var newDate = startDate;
var daysDif = 0;
var daysArray = [startDate];
for ( var i= 1; i<theoreticalData.length; i++ ) {
var OldCycle = parseInt(theoreticalData[i].OldCycle);
daysDif = theoreticalData[i].DaysDifference;
while (daysDif > OldCycle ) {
nextDate = this.sumDays(nextDate , OldCycle);
daysArray.push(nextDate);
daysDif = daysDif - OldCycle;
}
nextDate = this.sumDays(nextDate , daysDif);
daysArray.push(nextDate);
}
答案 0 :(得分:1)
当我在for循环中的while循环内推送值时,它会覆盖 数组中的前一个元素。
因为您每次都在更新同一个对象并将其推送到数组,
更改此行
nextDate = this.sumDays(nextDate , OldCycle);
到
nextDate = new Date(this.sumDays(nextDate , OldCycle).getTime());
每次都会创建一个新的日期对象。