使用循环填充数月

时间:2014-02-28 15:19:57

标签: javascript jquery arrays loops

function dateColumn() {
    var startDate = new Date($("#anStartDate").val()); //the start date
    var pmtPeriods = $("#anPaymentPeriods").val(); //number of months in this case
    var dateData = new Array(pmtPeriods);
    var i = 0;
    while (i < pmtPeriods) {
        startDate = startDate.add(i).month();
        dateData[i] = startDate;
        i++
    }
    alert(dateData);
}

假设我的开始日期为2014-01-01,我将{2}作为pmtPeriods。用[2014-02-01, 2014-02-01]填充我的数组。如果我将pmtPeriods视为具有相同开始日期的3,则结果为[2014-03-01, 2014-03-01, 2014-03-01]。这是错误的。

使用pmtPeriods 2我想得到结果:

[2014-02-01, 2014-03-01]

而不是

[2014-02-01, 2014-02-01]

1 个答案:

答案 0 :(得分:3)

您将startDate添加到dateData数组3次。这只是添加对startDate值的引用,该值在循环中得到更新。变化:

dateData[i] = startDate;

dateData[i] = new Date(startDate);