2011-02-04 53 views
0

我有這個圖像表,有兩列和20行。當執行這個for循環時,除了第一行,只顯示左邊的第一個圖像,所有的行都可以正常工作。這真的很奇怪,執行順序有問題嗎?JavaScript中循環的怪異行爲

var image= []; 
var rows=5;   
for (var i = 0; i < test.length; i++) { 
    var avatar = test[i].image; // The profile image 

    if(i % 2 === 0){ 
     image[i]= Titanium.UI.createImageView({ 
      top:row, 
      image:avatar 
      align:right 
      }); 
     win.add(image[i]); 
     //trying to increase the image 
     row =row+200; 
    } else if(i % 2 === 1) { 
     image[i]= Titanium.UI.createImageView({ 
      top:row, 
      image:avatar 
      align:left 
      }); 
     win.add(image[i]); 
    } 
} 
+0

如果可以更改爲一個簡單的else語句,您還可以。 i%2將始終爲0或1. – Joel 2011-02-04 21:16:08

+0

1. if-else語句的兩個分支均包含6行等效代碼(?!)將代碼置於if-else語句之外。 2.不要在for循環中聲明變量。它表明該變量被多次聲明,事實並非如此。在頂部聲明變量。 – 2011-02-04 21:21:25

回答

2

i = 0,i%2 = 0,顯示圖像(應該是正確的),row + = 200;

I = 1,則i%2 = 1,示出了圖像(左側),排保持相同

設爲i = 2,則i%2 = 0,顯示出圖像(右側),行+ = 200

0%2 = 0,表示右側圖像,然後進入下一行。只需要玩弄增加行數的位置以及循環開始的哪一側。