Javascript推送不断删除第一项

Gor*_*vic 1 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);
Run Code Online (Sandbox Code Playgroud)

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

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

Que*_*tin 12

today.setDate(today.getDate() + 7)
Run Code Online (Sandbox Code Playgroud)

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

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

var next_monday = new Date(today.setDate(today.getDate() + 7));
Run Code Online (Sandbox Code Playgroud)

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


创建新的日期对象第一,然后修改那个.