【问题标题】:Javascript array has more elements than the length valueJavascript数组的元素多于长度值
【发布时间】:2017-12-27 08:04:22
【问题描述】:

我正在使用 FabricJS,当您向 FabricJS 画布添加一些东西时,它会使用内部变量 canvas["_objects"]

跟踪它们

但是,当我 console.log() 时,我得到了你在 firebug screenshot

中看到的内容

查看这个数组,您会假设其中只有 7 个元素,当您使用 firebug 扩展它时,有 9 个,长度为 9。但是当我这样做时 console.log(canvas["_objects" ].length) 我只返回了 7 个。

我可以展开最后两个元素并查看它们。但是当我尝试直接访问它们时(通过将值 9 硬编码到迭代这个数组的循环中,而不是依赖于 length 属性)我得到一个错误,好像最后两个元素不存在一样。

但如果它们不存在,萤火虫怎么能看到它们呢?它们已被添加到画布中。

我什至不知道从哪里开始,从来没有见过这样的东西。

【问题讨论】:

  • 这些元素可能会在您访问数组后添加。在console 本身中,您会看到图标i,上面写着“刚刚评估了值”,这意味着最初当您记录数组时有 7 个元素,但得到了 2 个新元素稍后添加,console.log 打印当前值
  • 谢谢 abhishekkannojia 我会尝试测试一下。 Sagar V 我会看看我是否可以在 jsfiddle 中重新创建它

标签: javascript arrays canvas fabricjs


【解决方案1】:

abhishekkannojia 是正确的,这些元素是事后添加的。 Soemone elses merge 造成了这种情况,这就是为什么我看不到它。

感谢abhishekkannojia

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    相关资源
    最近更新 更多