JavaScript возвращает undefined, когда он действительно определен

Мой 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);

JavaScript возвращает undefined, когда он действительно определен

Я не понимаю, что здесь происходит. Разве ценность не должна быть ценностью? И что еще более важно, как мне получить свои данные?

Я не думаю, что необходимо публиковать весь файл "JSON" (который я НЕ создавал, но я должен работать с ним), но я опубликую снимок экрана №2, который показывает, как он выглядит, и почему мне нужно загрузить это так.

JavaScript возвращает undefined, когда он действительно определен

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

CertainPerformance 11.06.2018 03:17

ох, ДЕРП. асинхронный. nevvverrrminnnnd.

mydoglixu 11.06.2018 03:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
15
0

Другие вопросы по теме