无法读取未定义的 属性 'TUT'?

Cannot read property 'TUT' of undefined?

我用 jquery 加载了一个 json 文件,然后尝试访问某些属性,但出现未定义的错误。当我打印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 的方式。上面的代码在 some 函数中。当我在传递函数后打印信息时,它正是我 JSON 中的信息。

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

        var x = some_function(courses, info);

    });

我得到的错误是 "Cannot read property 'TUT' of undefined"。 Info 只是我从 JSON 加载的对象的变量。当我将变量打印到控制台时,我得到了它应该是什么样子。如果我只是做 `info[courses[i]] = some 属性' 我不会得到错误。 'info[courses[i]].length == 0'也提示无法读取属性'length'错误。我不确定这是否是语法问题,但我似乎无法弄清楚它有什么问题。

抛出错误,因为 info[courses[i]]undefined。检查什么返回 courses[i]courses[i] 应该返回 Calculus 1