返回未定义的JavaScript时';它实际上是被定义的
我的返回未定义的JavaScript时';它实际上是被定义的,javascript,Javascript,我的console.log显示了正确的值,但我无法访问我的属性 var subMenus = [], mainMenu = {}; $.getJSON("js/menu.js", function(data){ var menuJsonish = data.MenuEXTERNAL; //first turn this into an actual array instead of this dumb, non Json stuff $.each(menuJsonish, fun
console.log
显示了正确的值,但我无法访问我的属性
var subMenus = [], mainMenu = {};
$.getJSON("js/menu.js", function(data){
var menuJsonish = data.MenuEXTERNAL;
//first turn this into an actual array instead of this dumb, non Json stuff
$.each(menuJsonish, function(e) {
var name = e.valueOf();
var eachMenu = [];
if (e != "MenuSettings") { //skip MenuSettings
$.each(menuJsonish[name], function(element) {
var menuArray = [];
$.each(menuJsonish[name][element], function(item) {
var currentItem = menuJsonish[name][element][item];
var k = currentItem[0].valueOf();;
var v = currentItem[1].valueOf();
if (e == 'Menu1') {
eval("mainMenu."+k+" = '"+v+"'");
} else {
eachMenu[k] = v;
}
});
});
if (e != 'Menu1') {
subMenus[e] = eachMenu;
}
}
});
});
// this one returns undefined...
console.log(mainMenu.Menu1);
// yet this one returns all the correct data as shown in the screenshot
console.log(mainMenu);
我不明白这里发生了什么。一个值不应该是一个值吗?更重要的是,我如何获取数据
我认为没有必要发布整个“JSON”文件(我没有创建,但我必须使用它),但我将发布截图#2,其中显示了它的外观,以及为什么我必须这样加载它
您在控制台中看到的是(非直观的)活动对象,而不是记录时的对象(记录时为空)。哦,DERP。异步的。永远不要忘记。