为什么我的阵列重组了?

Bat*_*707 0 javascript object

我遇到了一点麻烦.我有一个全局变量(我希望我能避免它,但我不知道如何)在某些时候会腐蚀.我查看了我的代码,除了我想要的地方和方式之外,其他地方都没有被操纵.为了让事情变得更奇怪,当我在我的脚本中放置以下行(地方似乎无关紧要)console.log(_var); debugger;然后_var在控制台自己输入后,第一个_var显示正确的结构,但第二个不显示...

这是原始对象看起来像(并且应该看起来像):

[1: Array[2], 4: Array[2], 5: Array[2], 7: Array[2], 8: Array[2], 9: Array[2], 10: Array[2], 11: Array[2], 12: Array[2], 13: Array[2], 14: Array[2]]
Run Code Online (Sandbox Code Playgroud)

以下是断点后对象的样子:

[undefined × 1, Array[2], undefined × 2, Array[2], Array[2], undefined × 1, Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2]]
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚为什么会发生这种情况,但是当我在稍后根据用户操作调用的函数中遍历此对象时,这给了我一些问题.

非常感谢你的帮助.

use*_*ica 5

这里没问题.您只是看到两种不同的显示相同阵列的方式.console.log标记元素及其索引并省略未分配的数组索引,而只需键入_var控制台即可显示未分配的索引undefined × howevermany.

对于认为这看起来不像Javascript数组的人来说,在Chrome控制台中重现这种行为很简单:

示例会话