Javascript 推送不断删除第一项

标签 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

最佳答案

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

您正在修改插入数组的日期对象。

第一项没有被删除,它正在被更改。

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

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


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

关于Javascript 推送不断删除第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39751986/

相关文章:

php - 在 bool 值上调用成员函数 format()

javascript - setFullYear 不设置 Date 对象的小时/分钟/秒

mysql - mysql 中多个日期范围内的月份列表

javascript - 我需要验证我的日历,以便它只接受当前或 future 的日期?

javascript - 如何将 HTML 中的值附加到 jQuery 脚本

javascript - ChosenJs 动态更改默认选项

Javascript数组按姓氏,名字排序

javascript - 当另一个输入聚焦时,contenteditable div 失去选择

javascript - highcharts 的标注 CSS 实现不起作用

javascript - 如果输入日期 2 <= 日期 1,则 JS 发出警报