2016-07-01 9 views
0

を繰り返す私はこのコードを使用して、いくつかの写真を反復処理しています:JavaScriptが後方項目を

if (this.lightboxIndex < this.photos.length - 1) { 
 
      this.lightboxIndex++; 
 
      } else { 
 
      this.lightboxIndex = 0; 
 
      } 
 
      this.lightboxSrc = this.photos[this.lightboxIndex].src; 
 
     },

私は同じ写真を逆方向に反復することができますどのように?私は何をする必要があるのだろうか?

答えて

0
if(this.lightboxIndex > 0) { 
    this.lightboxIndex--; 
} else { 
    this.lightboxIndex = this.photos.length - 1; 
} 
this.lightboxSrc = this.photos[this.lightboxIndex].src; 
2

if(this.lightboxIndex < this.photos.length - 1){ 
 
      this.lightboxIndex--; 
 
      } else { 
 
      this.lightboxIndex = 0; 
 
      } 
 
      this.lightboxSrc = this.photos[this.lightboxIndex].src; 
 
     },
あなたがダウンして反復している、あなたは、ない最高のインデックス0に達したかどうかを確認して、最高の索引に戻って行く必要があります。

if (this.lightboxIndex == 0) { 
    this.lightboxIndex = this.photos.length - 1; 
} else { 
    this.lightboxIndex--; 
} 

あなたifテストは常に成功しますので、それだけで負の数に入って、インデックスをデクリメント維持します。

0

ループをデクリメントするのはなぜですか?for

for (this.lightboxIndex = (this.photos.length - 1); this.lightboxIndex >= 0; this.lightboxIndex--) { 
    this.lightboxSrc = this.photos[this.lightboxIndex].src; 
} 
0

は、それがfirst indexであれば、最初のインデックスに最後のインデックス、他の減少に割り当てるので、後方、last to firstから行こう考えてみましょう!

転送先がfirst to lastになるので、last indexの場合は、first indexに、最後にインデックスを増やしてください!

this.lightboxIndex = 0; 
this.photos = ['a','b','c']; 
function forward(){ 
    if (this.lightboxIndex == this.photos.length -1) { 
      this.lightboxIndex = 0; 
      } else { 
      this.lightboxIndex++; 
      } 
      this.lightboxSrc = this.photos[this.lightboxIndex]; 
      console.log(this.lightboxSrc); 
     } 
function backward() { 
    if(this.lightboxIndex == 0) { 
    this.lightboxIndex = this.photos.length -1; 
    } 
    else { 
    this.lightboxIndex--; 
    } 
    this.lightboxSrc = this.photos[this.lightboxIndex]; 
    console.log(this.lightboxSrc); 
}  
     forward(); 
     forward(); 
     forward(); 
     backward(); 
     backward(); 
     backward(); 
関連する問題