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

时间:2019-10-15 01:39:16

标签: javascript jquery html json undefined

我用jquery加载了一个json文件,然后尝试访问某些属性,但出现未定义的错误。当我打印json对象时,可以清楚地看到其中的对象。

Long

这是我的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的方式。上面的代码在some函数中。当我在传递函数后在函数内打印信息时,这正是我在JSON中所拥有的。

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

我得到的错误是“无法读取未定义的属性'TUT'”。信息只是我从JSON加载的对象的变量。当我将变量打印到控制台时,我确切地知道它应该是什么样子。如果我只是做“ info [courses [i]] =一些属性”,我不会得到一个错误。 'info [courses [i]]。length == 0'也会提示无法读取的属性'length'错误。我不确定这是否是语法问题,但似乎无法弄清楚这是怎么回事。

1 个答案:

答案 0 :(得分:0)

抛出错误是因为info[courses[i]]undefined。检查返回的内容为courses[i]courses[i]应该返回Calculus 1