我正在开发一个HTML5画布游戏,并且我正在绘制到画布的图像数组。阵列中的图像目前都正确绘制,并且我有一个console.log行,我想用它来在控制台中显示数组的大小。但由于某种原因,控制台一直告诉我数组长度未定义。JavaScript数组长度不显示在我的控制台日志中
我使用打印数组长度的线路是:
console.log("sources array length = " + sources.length);
它在一个for循环:
for (index=0;index < numImages ;index++){
console.log(index);
images[index] = new Image();
images[index].src = sources[index];
console.log("Adding " + sources[index]);
callback(images[index]);
console.log("sources array length = " + sources.length);
}
正如你所看到的,我已经在另一个的console.log声明循环,记录每次循环运行的时间...
console.log(index);
这行显示变量索引值每次lo op运行,从0开始,每次增加1,直到循环达到等于变量'numImages'的值时结束。
但是,由于某种原因,应该打印数组长度的行在每次循环运行时显示“sources array length = undefined”,而不是数组的实际长度。
任何人都可以指出为什么这是?每次循环运行时,如何显示sources数组的长度?
编辑13/02/2013 @ 15:10
来源阵列在相同的文件中定义,使用线:
var sources = {};
的原因还没有定义的一组长度对于数组而言,是因为我需要动态的长度。然后我加入了使用线这样的元素添加到数组:
sources[0] = document.getElementById("building").src,
sources[1] = document.getElementById("chair").src,
sources[2] = document.getElementById("drink").src,
sources[3] = document.getElementById("food").src,
所以,我希望我的console.log线做的,就是告诉我数组的长度,因为它是目前,也就是有多少元素有被添加到它。正如你可以在我的原始文章中看到的第一个代码所示,我有一个console.log,每当元素被添加到sources数组时,它都会向控制台输出一条消息 - 它们显然是正确添加的,否则,它们不会显示在画布上...所以数组的长度必须在图像被绘制到画布上时定义,否则它们不会被绘制在数组中。
你如何以及在哪里定义你的'sources'变量? – VisioN 2013-02-13 14:50:50
定义了“sources”的位置? – 2013-02-13 14:50:54
我已经添加了代码来显示'sources'的定义以及它的使用方式。 – someone2088 2013-02-13 15:16:12