Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从JSON对象获取数组_Javascript_Json - Fatal编程技术网

Javascript 从JSON对象获取数组

Javascript 从JSON对象获取数组,javascript,json,Javascript,Json,我有一个JSON对象: var Events = { "Jan" : [], "Feb" : [], "Mar" : { "23" : [ {"eventName" : "Start", "eventYear" : 2015, "eventDescription" : "First event description"}, {"eventName" : "Start 2", "eventYear" : 2016, "eventDescription" :

我有一个JSON对象:

var Events = {
"Jan" : [],
"Feb" : [],
"Mar" : {
    "23" : [
        {"eventName" : "Start", "eventYear" : 2015, "eventDescription" : "First event description"},
        {"eventName" : "Start 2", "eventYear" : 2016, "eventDescription" : "Second event description"},
        {"eventName" : "Start 3", "eventYear" : 2017, "eventDescription" : "Third event description"}
    ],
    "24" : [
        {"eventName" : "Start", "eventYear" : 2015, "eventDescription" : "First event description for 24"},
        {"eventName" : "Start 2", "eventYear" : 2016, "eventDescription" : "Second event description for 24"}
    ]
},
"Apr" : [],
"May" : [],
"Jun" : [],
"Jul" : [],
"Aug" : [],
"Sep" : [],
"Oct" : [],
"Nov" : [],
"Dec" : []
}
我正在尝试获取当月的事件数组:

window.addEventListener('DOMContentLoaded', init);
var date, month_names_short, thisMonthEvents;
function init(){
    date = new Date();
    month_names_short = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    thisMonthEvents = Events.month_names_short[date.getMonth()];
};
但我收到以下错误类型错误:无法读取此行的未定义属性“2”:

thisMonthEvents = Events.month_names_short[date.getMonth()];

我做错了什么?如何修复它?

如果您确实计划使用月名短数组,您可以执行以下操作:

function init(){
    date = new Date();
    month_names_short = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    for (var index in month_names_short) {
         var month = month_names_short[index];
         thisMonthEvents = Events[month];
    }
};

首先,您需要通过索引在month_names_short数组中查找月份名称。然后使用和找到的名称可以访问相应的事件:

function init() {
    date = new Date();
    month_names_short = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    thisMonthEvents = Events[month_names_short[date.getMonth()]];
};
使用[]而不是。捐赠


您的意思是thisMonthEvents=Events[month\u names\u short[date.getMonth]]?您是否尝试过使用getJSONArray和setJSONArray?month\u names\u short不是的属性Events@nnnnnn是的,这就是我需要的,谢谢!你能把它贴出来作为答案吗?这样我就可以接受了?
window.addEventListener('DOMContentLoaded', init);
var date, month_names_short, thisMonthEvents;
function init(){
    date = new Date();
    month_names_short = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    thisMonthEvents = Events[month_names_short[date.getMonth()]];
};