我正在尝试使用以下代码处理从服务器发送的数据,其中 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" }
类型错误:msg.cues[i] 未定义
知道为什么会发生这种情况以及如何解决这个问题吗?
最佳答案
您正在迭代超过数组长度的一个位置。改变
for (var i = 0; i <= msg.cues.length; i++)
至
for (var i = 0; i < msg.cues.length; i++)
关于Javascript 对象属性可访问,但给出未定义的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47861462/