问题在索引0处选择Array对象

时间:2016-11-14 21:52:58

标签: javascript

我有一个数组(目前有一个项目),打印出来如下:

enter image description here

控制台图像是console.log(对象)的结果,但是我需要该数组中的第一项,所以我试图在索引0处选择对象但是这不起作用并且在控制台中打印为&# 39;未定义'使用以下代码:

var objects = wpd_editor.canvas.getObjects();
console.log(objects[0]);

3 个答案:

答案 0 :(得分:1)

根据@shanzilla的回答,您可能需要等到所有内容都被加载 - 包括您的Fabric.js模块和您可能正在做的任何绘图 - 然后再尝试检查是否存在某些内容。不确定你是如何加载Fabric.js代码或当你绘制画布时,但快速&检查这是否是问题的脏方法是将该日志包装在超时中:

setTimeout(function () {
  var objects = wpd_editor.canvas.getObjects();
  console.log(objects[0]);
}, 1000)

这对您来说可能不是一个可持续的解决方案,但它会让您知道,在您等待的那一秒钟内,一些重要的事情正在发生,特别是页面的加载和呈现。对于更可持续的解决方案,使用Fabric.js's events API等待绘制画布的以下内容可能会起作用:

wpd_editor.canvas.on('after:render', function() {
  var objects = wpd_editor.canvas.getObjects();
  console.log(objects[0]);
});

答案 1 :(得分:0)

这样的事情会让你更接近解决方案:

for(var item of objects)
    console.log(item)

for(var i = 0; i < objects.length; i++)
    console.log(objects[i])
// if this one works, you should check if you accessing the array at the right time.

答案 2 :(得分:0)

您似乎可能在定义之前尝试记录对象数组的第一个元素。

...试

if (objects.length > 0)
   console.log(objects[0])

如果没有输出则是时间问题。