无法访问正确的对象位置

时间:2015-10-23 09:44:55

标签: javascript

我尝试获取这样的特定对象位置:

workingPlan[selDayName]

workingPlan对象包含以下结构:

Object {monday: null, tuesday: Object, wednesday: null, thursday: Object, friday: null…}
friday: null
monday: null
saturday: Object
sunday: null
thursday: Object
tuesday: Object
wednesday: null
__proto__: Object

如何查看工作计划包含所有工作日,如下所示的一天:saturday, thursday, tuesday是工作日'原因是定价并包含startend属性但现在这不重要。

selDayName包含当前日期,具有以下结构:

fri oct 23 2015 00:00:00 gmt+0000

现在当我这样做时:workingPlan[selDayName]我希望在工作计划中得到当天的日期,因为我需要为每个运营商显示不可用的时间段。这段代码返回的问题是:

  

未定义

作为chrome控制台中的响应。我不知道为什么。但我等待这个回复:null.我做错了什么?

更新 - 完整对象结构:

{
    "monday" : null,
    "tuesday" : {
        "start" : "09:00",
        "end" : "18:00",
        "breaks" : [{
                "start" : "11:20",
                "end" : "11:30"
            }, {
                "start" : "14:30",
                "end" : "15:00"
            }
        ]
    },
    "wednesday" : null,
    "thursday" : {
        "start" : "09:00",
        "end" : "18:00",
        "breaks" : [{
                "start" : "11:20",
                "end" : "11:30"
            }, {
                "start" : "14:30",
                "end" : "15:00"
            }
        ]
    },
    "friday" : null,
    "saturday" : {
        "start" : "09:00",
        "end" : "18:00",
        "breaks" : [{
                "start" : "11:20",
                "end" : "11:30"
            }, {
                "start" : "14:30",
                "end" : "15:00"
            }
        ]
    },
    "sunday" : null
}

DATE PARSE

var selDayName = $calendar.fullCalendar('getView')
                                    .start.toString('dddd').toLowerCase();

也许我应该从主题开始插入上面的代码,对不起。

2 个答案:

答案 0 :(得分:1)

您的selDayNameDate个对象。但是,您的数组包含星期几的数据。你不能简单地通过Date并期望它能够起作用:)

您可以使用Date.getDay()方法获取星期日期 - 它会返回0(星期日)到6(星期六)之间的整数。然后,您可以将其映射到您的值。

var daysOfWeek = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];

var dayOfWeek = daysOfWeek[selDayName.getDay()]; // "sunday", "tuesday", "friday" etc.

var workingPlanForDay = workingPlan[dayOfWeek]; // null or object, if exists

console.log(workingPlanForDay); 

答案 1 :(得分:1)

我已修复此问题:

$calendar.fullCalendar('getView').start.toDate().toString('dddd').toLowerCase();