我正在尝试使用以下代码处理从服务器发送的数据,其中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
知道为什么会这样,以及如何解决这个问题?
答案 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
中的<=
替换为<