可以访问Javascript对象属性,但会给出未定义的错误

时间:2017-12-18 02:37:26

标签: javascript

我正在尝试使用以下代码处理从服务器发送的数据,其中msg是包含两个数组的传入数据:

console.log(msg);
for (var i = 0; i <= msg.cues.length; i++) {
  $("#cues").append("<div class=\"cue-item\" cueval=\"cue-" + i + "\"><h4>"+msg.cues[i].name+"</h4>"+msg.cues[i].description+"</div>");
}

此代码将所需元素添加到页面中,并且浏览器窗口中的所有内容似乎都很好,但在控制台中我得到以下错误,阻止所有其他代码运行:

{…}
  channels: Array [ 0, 0, 0, … ]
  cues: […]
    0: Object { name: "Cue 1", description: "This is a test cue" }

TypeError: msg.cues[i] is undefined

知道为什么会这样,以及如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

你正在迭代一个超过数组长度的位置。变化

for (var i = 0; i <= msg.cues.length; i++)

for (var i = 0; i < msg.cues.length; i++)

答案 1 :(得分:1)

将for {loop head

中的<=替换为<