正しいコード。それがコンソールに印刷:
https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSCFJNHQ2k1hvNCD3F9zKp9WiPooSBkjUy-ymynu1T0kmiaW-7r
かなり正確である、唯一search_objects項目であるbacaouse。
ループ内の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)
}
そしてこの第二の場合には、このループはsearch_objectsのみつの項目を有する2回実行され、これはコンソールにオブジェクト自体及びそれの長さを印刷することによって証明されます。
これはコンソールに表示されます。
1 //長さ
0 // J
res1.png // math.randomからIMG
66 // Jの最初の項目
ユニーク//値のプロパティ??????! !!!!!!!!!!!!これは時代のほとんどを起こる:math.random
未定義//から
res2.png // IMGは
お知らせ[ユニーク] search_objectsの性質を示しているようです。時代の100%ではありません。それは、ページがリフレッシュされた後に最初に実行したときに実行されたときに発生しないとしましょう。 誰もこのようなことを以前に見たことがありますか?
[JavaScriptで配列をループ]の可能な重複(http://stackoverflow.com/questions/3010840/loop-through-array-in-javascript) –
はまあ '用を使用する理由はありません。..とにかく配列のinループです。 – Pointy