我正在開發一個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