为什么会发生这种情况,javascript稀疏数组未初始化

为什么会发生这种情况,javascript稀疏数组未初始化,javascript,Javascript,看起来这个值还可以,但我不知道这种编程在javascript中是否可以。我试图避免这种事情。在我看来,最好使用push来创建可以使用for循环的数组 这个问题是,如果你创建了这样的东西,然后想用数据做一些事情,你最终会得到,因为你必须跳过取消定义 for (var i = 0; i < arr.length; i++) { if (arr[i] != undefined) { // do something here } } 编辑: 在本例中,如果您需要检索ID为3


看起来这个值还可以,但我不知道这种编程在javascript中是否可以。

我试图避免这种事情。在我看来,最好使用push来创建可以使用for循环的数组

这个问题是,如果你创建了这样的东西,然后想用数据做一些事情,你最终会得到,因为你必须跳过取消定义

for (var i = 0; i < arr.length; i++) {
   if (arr[i] != undefined) {
     // do something here
   }
}
编辑:

在本例中,如果您需要检索ID为32的内容,您可以这样做

for (var i = 0; i < arr.length; i++) {
   if (arr[i].id === 32) {
     // do something here
   }
}
for(变量i=0;i
拥有这样的数组有什么意义?数组从零开始,当你在32个索引中设置某些内容时,之前的32个(包括零)索引被设置为
未定义的
你似乎在问两个不同的问题。。。你到底想知道什么?@Vohuman 32是一个键,我应该使用“32”,那么devtools中的数组输出就和普通数组一样,但我不确定是否使用number,因为在Javascript中键是可以的。如果
32
是一个键,那么你可能需要一个对象而不是数组。
for (var i = 0; i < arr.length; i++) {
   if (arr[i].id === 32) {
     // do something here
   }
}