Мой console.info показывает правильные значения, но я не могу получить доступ к своим свойствам!
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.info(mainMenu.Menu1);
// yet this one returns all the correct data as shown in the screenshot
console.info(mainMenu);
Я не понимаю, что здесь происходит. Разве ценность не должна быть ценностью? И что еще более важно, как мне получить свои данные?
Я не думаю, что необходимо публиковать весь файл "JSON" (который я НЕ создавал, но я должен работать с ним), но я опубликую снимок экрана №2, который показывает, как он выглядит, и почему мне нужно загрузить это так.
ох, ДЕРП. асинхронный. nevvverrrminnnnd.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


То, что вы видите в консоли, - это (не интуитивно понятный) объект жить, а не объект на момент регистрации (на момент регистрации он был пуст).