我有一个像下面这样的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']];
答案 0 :(得分:5)
报告的长度是正确的,因为数组是空的。
当您使用带括号语法的字符串(不表示数字)时,您不会在数组中放置项目,而是将属性放在数组对象中。
答案 1 :(得分:5)
您似乎将数组与对象混淆。你拥有的不是数组。数组只能有整数索引。在您的示例中,您似乎使用了一些不是整数的b41573bb
和6c21a507
,因此您没有数组。你有一个带有这些属性的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']];
现在,当您调用.length时,您将获得正确数量的元素(2)。
答案 2 :(得分:1)
试试这个
<script type="text/javascript">
var pubs = new Array();
var b41573bb = new Array();
var c6c21a507 = new Array();
b41573bb.push['Albx Swabian Alb Visitor Guide', '', '15.12.2007 09:32:52', ['0afd894252c04e1d00257b6000667b25']];
c6c21a507.push['CaSH', '', '29.05.2013 14:03:35', ['30500564d44749ff00257b7a004243e6']];
pubs.push(b41573bb);
pubs.push(c6c21a507);
alert(pubs.length);