【问题标题】:Can't access property in push method无法访问推送方法中的属性
【发布时间】:2016-02-04 18:50:16
【问题描述】:

我在使用 momentjs 的角度指令中有一个简单的函数。它为日历构建一周。我正在尝试为预订设置不可用日期。

使用 Chrome 控制台,我认为我解决了这个问题:indexOf();

我遇到的问题是,当我将代码移入 push 方法中时,它返回 date is undefined (.date.format('YYYY-MM-DD'))

function _buildWeek(date, month) {

            var days = [];

                for (var i = 0; i < 7; i++) {

                    days.push({
                        name: date.format("dd").substring(0, 1),
                        number: date.date(),
                        isCurrentMonth: date.month() === month.month(),
                        isToday: date.isSame(new Date(), "day"),
                        date: date,
                        unavailable: dealerUnAvailabilityDates[0].daysOff.indexOf(days[days.length-1].date.format('YYYY-MM-DD')) !== -1
                    });

                    date = date.clone();
                    date.add(1, "d");


                }

                console.log(days);


            return days;
        }

我猜问题是“日期”是对象的一部分,所以在创建对象之前不能使用它。它正在尝试使用自己。\

请问我该如何解决这个问题?

【问题讨论】:

    标签: javascript jquery arrays angularjs momentjs


    【解决方案1】:

    问题在于,当您尝试在每次迭代中使用它时,days[days.length - 1] 尚未填充。但是,您可以安全地使用 date 对象本身,因为它是您想要的:

    var days = [];
    
    for (var i = 0; i < 7; i++) {
    
        days.push({
            name: date.format("dd").substring(0, 1),
            number: date.date(),
            isCurrentMonth: date.month() === month.month(),
            isToday: date.isSame(new Date(), "day"),
            date: date,
            unavailable: dealerUnAvailabilityDates[0].daysOff.indexOf(date.format('YYYY-MM-DD')) !== -1
        });                                // use date directly here --^ 
    
        date = date.clone();
        date.add(1, "d");
    }
    

    【讨论】:

      猜你喜欢
      • 2019-05-07
      • 1970-01-01
      • 1970-01-01
      • 2023-02-20
      • 2013-11-23
      • 2020-04-26
      • 2014-09-19
      • 2018-03-02
      • 2014-12-04
      相关资源
      最近更新 更多