Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript数组返回的长度始终为0,即使其中有元素_Javascript - Fatal编程技术网

Javascript数组返回的长度始终为0,即使其中有元素

Javascript数组返回的长度始终为0,即使其中有元素,javascript,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

我有一个如下的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']];

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


当使用括号语法的字符串(不表示数字)时,不是将项目放入数组,而是将属性放入数组对象。

您似乎将数组与对象混淆了。您拥有的不是数组。数组只能有整数索引。在您的示例中,您似乎使用了一些非整数的
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)。

试试这个

<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);

var pubs=新数组();
var b41573bb=新数组();
var c6c21a507=新数组();
b41573bb.推送['Albx Swabian Alb访客指南','','',15.12.2007 09:32:52',['0afd894252c04e1d00257b6000667b25'];
c6c21a507.推送['CaSH','','29.05.2013 14:03:35',['30500564d44749ff00257b7a004243e6'];
酒吧推送(b41573bb);
酒吧推(c6c21a507);
警觉(酒吧长度);

只有数字键才会影响数组的长度。请看这里这是一个有用的讨论:感谢您的评论。我尝试使用这个对象。键(酒吧)。长度,并获得了正确的长度。