IE8 Javascript:'2'为null或不是对象

NXT*_*NXT 2 javascript internet-explorer-8

我在IE8中得到一个无意义的错误消息,告诉我常量'2'是null或不是对象.代码行是:

if (! localtree[idx][2]) {
Run Code Online (Sandbox Code Playgroud)

我也试过像这样编码:

if (localtree[idx][2] == 0) {
Run Code Online (Sandbox Code Playgroud)

该位置的数组中的值始终为零(暂时).

IE8如何认为数字2为空?我很神秘!

确切的错误是:

Message: '2' is null or not an object
Run Code Online (Sandbox Code Playgroud)

有没有人见过这个?

编辑:这是一个非常误导性的错误消息.请参阅下面的答案,了解实际出了什么问题.

NXT*_*NXT 5

这是一个非常令人困惑的错误消息.事实证明,我正在跨越阵列的末尾踩一个元素.'idx'引用了一个不存在的值,我试图将其视为数组引用(使用[2]).

而不是告诉我'2'为空,它应该说'localtree [idx]'为空.

这个的根本原因是我有一个尾随的逗号我定义了数组,导致数组中有一个额外的null值.在firefox中,尾随逗号被忽略(如在perl中),但在IE中,它们很重要.