正在从JSON对象获取数组
Getting array from JSON object
我有这个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()];
};
但我得到了这行的错误TypeError: Cannot read property '2' of undefined
:
thisMonthEvents = Events.month_names_short[date.getMonth()];
我做错了什么?怎样才能纠正?
首先,您需要通过索引在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()]];
};
如果你确实计划使用month_names_short数组,你可以这样做:
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];
}
};
使用"[]"
而不是"." donation
。
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()]];
};
相关文章:
- 获取数组的总值
- 按最大值获取数组索引
- React.js如何从js文件中获取数组
- TinyMCE获取数组数据
- 如何获取数组详细信息另一页
- 使用javascript从节点属性获取数组值
- 使用JavaScript获取数组中表单的所有控件
- 获取数组的长度-打印不正确的值
- 正在从JSON对象获取数组
- 什么'获取数组的已定义部分的最快方法是什么?JS
- 如何使用angular指令从html中获取数组
- 如何获取数组中数字的最大出现次数
- 根据优先级获取数组的值
- JAVASCRIPT:获取数组中的值
- 获取数组的元素,无论索引的大小如何
- JavaScript:在XML中搜索节点并从该节点获取数组
- 无法获取数组的长度
- 在数字索引循环中获取数组项的键
- 如何使用JavaScript或jQuery获取数组中选定的optgroup和选项
- Javascript-函数获取数组元素参数未定义/为null