我在 javascript 中使用了一个多维数组来存储我用来动态生成内容的数据,它在任何 webkit 浏览器以及 firefox 和 IE 9 及更高版本中都能正常工作,但出于某种原因 IE 8(我测试过它)和 IE 7(我模拟的)在以下代码中给我一个错误“是空的或不是一个对象”:
var data =
[
["A","X",[5,6],3,2014],
["V","L",[9,10],4,2014],
["X","N",[10,11],6,2014]
];
for(var t=0;t<data.length;t++){
if(data[t][3]==i){
alert("Found");
}
}
错误明确指出“3”为空或不是对象,并引用 if 语句中的 3。错误可能是因为我没有将数组声明为
var data=new Array();
还是有其他问题?
附加信息:此代码位于 jQuery 的文档就绪事件中。
最佳答案
问题中的代码不会产生该错误,但如果您在数组中的最后一项之后有尾随逗号,它将:
var data =
[
["A","X",[5,6],3,2014],
["V","L",[9,10],4,2014],
["X","N",[10,11],6,2014],
];
for(var t=0;t<data.length;t++){
if(data[t][3]==i){
alert("Found");
}
}
在 IE8 和更早版本中,该数组将有四个项目而不是三个,最后一个项目将是未定义的。当t
为3
时,data[t]
将返回undefined
,并应用[3]
到那将导致该错误消息。它表示“'3' 为 null 或不是对象”,因为 3
是您用来获取不是对象的值的索引。
关于javascript - 错误 : Is null or not an object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991330/