【问题标题】:Javascript array returns length as 0 always even there are elements in it [duplicate]即使其中有元素,Javascript数组也始终将长度返回为0 [重复]
【发布时间】:2013-06-05 20:07:13
【问题描述】:

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

【问题讨论】:

标签: javascript


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的 cmets。我尝试了这个 Object.keys(pubs).length 并得到了正确的长度。
    【解决方案3】:

    试试这个

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

    【讨论】:

      猜你喜欢
      • 2018-12-10
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 2018-04-01
      • 2018-12-02
      • 2018-01-05
      相关资源
      最近更新 更多