Не удается прочитать свойство 'TUT' из неопределенного? - PullRequest
0 голосов
/ 15 октября 2019

Я загрузил файл json с помощью jquery, а затем попытался получить доступ к определенным свойствам, но получил неопределенную ошибку. Когда я печатаю объект json, я четко вижу объект в нем.

{
 "Calculus 1": {
    "LEC": {
      "sections": [
        "LEC01",
        "LEC02"
      ],
      "days": [
        [
          "MO",
          "WE"
        ],
        [
          "MO",
          "TH"
        ]
      ],
      "start": [
        [
          "12:00",
          "11:00"
        ],
        [
          "13:00",
          "13:00"
        ]
      ],
      "end": [
        [
          "13:00",
          "13:00"
        ],
        [
          "14:00",
          "15:00"
        ]
      ]
    },
    "TUT": {
      "sections": [],
      "days": [],
      "start": [],
      "end": []
    },
    "PRA": {
      "sections": [],
      "days": [],
      "start": [],
      "end": []
    }
  }
}

Вот как выглядит упрощенная версия моего JSON. Часть в моем коде, которая пытается получить доступ к свойству, выглядит следующим образом.

if(info[courses[i]]['TUT']['sections'].length == 0){
         tut = -1;
}

Вот как я загрузил свой JSON. Код выше находится внутри некоторой функции. Когда я передаю информацию внутри функции после ее передачи, это именно то, что у меня есть в моем JSON.

$.getJSON('/public/courseinfo.json', function(info){

        var x = some_function(courses, info);

    });

Я получаю сообщение об ошибке: «Не удается прочитать свойство 'TUT' из неопределенного". Информация - это просто переменная для объекта, который я загрузил из моего JSON. Когда я печатаю переменную в консоли, я получаю именно так, как она должна выглядеть. Если я просто сделаю `info [courses [i]] = некоторое свойство ', я не получу ошибку. 'info [courses [i]]. length == 0' также выдает сообщение об ошибке 'длина' не может прочитать свойство. Я не уверен, что это проблема синтаксиса, но я не могу понять, что с ним не так.

1 Ответ

0 голосов
/ 15 октября 2019

Ошибка выдает, потому что info[courses[i]] равно undefined. проверьте, что возвращается как courses[i]. courses[i] должно возвращаться Calculus 1

...