Javascript数组返回长度为0,即使有元素也是如此

gul*_*ahi 5 javascript

我有一个像下面这样的javascript数组,里面有几个元素.当我尝试读取数组的长度时,我总是得到0作为长度.任何人都可以告诉我为什么会这样.

我的数组是这样的:

var pubs = new Array();
pubs['b41573bb'] =['Albx Swabian Alb Visitor Guide','','15.12.2007 09:32:52',['0afd894252c04e1d00257b6000667b25']];
pubs['6c21a507'] =['CaSH','','29.05.2013 14:03:35',['30500564d44749ff00257b7a004243e6']];
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 5

报告的长度是正确的,因为数组是空的.

当您使用带括号语法的字符串(不表示数字)时,您没有将项放在数组中,而是将属性放在数组对象中.


Dar*_*rov 5

你似乎把数组与对象混淆了.你拥有的不是数组.数组只能有整数索引.在您的示例中,您似乎使用了一些b41573bb6c21a507不是整数,因此您没有数组.你有一个带有这些属性的javascript对象.数组看起来像这样:

var pubs = new Array();
pubs[0] = ['Albx Swabian Alb Visitor Guide','','15.12.2007 09:32:52',['0afd894252c04e1d00257b6000667b25']];
pubs[1] = ['CaSH','','29.05.2013 14:03:35',['30500564d44749ff00257b7a004243e6']];
Run Code Online (Sandbox Code Playgroud)

现在当你调用.length时,你将得到正确数量的元素(2).