Javascript推送不断删除第一项

时间:2016-09-28 15:37:29

标签: javascript date

我有一个非常奇怪的问题。我正在创建一个日期对象数组(星期一)

// array to hold week commencing dates
        var mondays = [];
        mondays.push(today);
        var novi = new Date(today);

        while(novi < endDate){

            var next_monday = new Date(novi.setDate(novi.getDate() + 7));

            day_index = next_monday.getDay();
            if(day_index == 1){
                mondays.push(next_monday);
            }
            // increment the date
            novi = next_monday;
        }
        console.log(mondays);

更新:感谢您的回复。我在开始时创建了新对象并使用了那个。所以我再次创建空数组,然后在开始循环之前向它添加一个日期,然后循环中的第一个项目不会被添加,即使它被推送。我做错了什么?

这是我从上面得到的console.log。 https://www.dropbox.com/s/04bckfcrwl7yvwd/Screenshot%202016-09-28%2018.29.25.png?dl=0

1 个答案:

答案 0 :(得分:12)

today.setDate(today.getDate() + 7)

您正在修改推入阵列的日期对象。

第一项未被删除,正在更改。

var next_monday = new Date(today.setDate(today.getDate() + 7));

然后从中创建一个新的日期对象。

创建新的日期对象优先,然后修改