正確的代碼。它打印在控制檯:
https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSCFJNHQ2k1hvNCD3F9zKp9WiPooSBkjUy-ymynu1T0kmiaW-7r
這是相當正確的,bacaouse的只有一個search_objects項。
在循環中非常奇怪的行爲javascript
var j;
for (j=0;j< search_objects.length; j++){
console.log(j)
website = search_objects[j].website;
var rand = Math.floor(Math.random()*3)
var img_src;
switch (rand){
case 0: img_src = "res1.png"; break;
case 1: img_src = "res2.png"; break;
case 2: img_src = "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSCFJNHQ2k1hvNCD3F9zKp9WiPooSBkjUy-ymynu1T0kmiaW-7r"; break;
}
console.log(img_src);
var template_result = '<div class="owl-item " ..........div>'
console.log(search_objects[j].ID_subr)
add_carousel_item(template_result)
}
但是如果我改變它爲for循環它會再執行一次。
var j; //same thing if i declare like this: for(var j in search_objects)
for (j in search_objects){
console.log(j)
website = search_objects[j].website;
var rand = Math.floor(Math.random()*3)
var img_src;
switch (rand){
case 0: img_src = "res1.png"; break;
case 1: img_src = "res2.png"; break;
case 2: img_src = "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSCFJNHQ2k1hvNCD3F9zKp9WiPooSBkjUy-ymynu1T0kmiaW-7r"; break;
}
console.log(img_src);
var template_result = '<div class="owl-item " ..........div>'
console.log(search_objects[j].ID_subr)
add_carousel_item(template_result)
}
而這種循環在這第二種情況下將被執行2時間時search_objects只有一個項目,這是通過打印到控制檯的對象本身和它的長度被證明。
雖然這是顯示在控制檯中。
1 //長度
0 //Ĵ
res1.png //從的Math.random IMG
66 // j的第一項
獨特//值的屬性??????! !!!!!!!!!!!!
res2.png // IMG從的Math.random
未定義//似乎顯示search_objects [唯一]
公告的性質:發生這種情況大部分的時間。不是100%的時間。讓我們說這不會發生,當我把它作爲我刷新頁面後做的第一件事。 以前有人見過這樣的事情嗎?
可能重複[在JavaScript中通過數組循環](http://stackoverflow.com/questions/3010840/loop-through-array-in-javascript) –
那麼沒有理由使用'for ..無論如何,在數組的循環中。 – Pointy