2015-05-04 123 views
2

這是一個快速jsfiddle,我提出了一個更好的例子,我的問題。如何在循環內檢查for循環何時完成?

function gi(id){return document.getElementById(id)} 

    a= [1,5,1,2,3,5,3,4,3,4,3,1,3,6,7,752,23] 


for(i=0; i < a.length; i++){ 
    /* 
    if (WHAT AND WHAT){ What do I add here to know that the last value in the array was used? (For this example, it's the number: 23. Without doing IF==23. 

    } 
    */ 

    gi('test').innerHTML+=''+a[i]+' <br>'; 
} 

(代碼也可在https://jsfiddle.net/qffpcxze/1/

因此,該數組中的最後一個值是23,但我怎麼能知道最後的值中循環,循環本身裏面? (沒有檢查簡單的IF X == 23,但動態),如果這是有道理的。

+0

沒有你問的問題不夠了解相關的代碼應該在這個問題嗎? –

+0

因此,您必須在SO上發佈重要代碼,因此我們不會鏈接到您的所有代碼。請在這裏發佈進口位並鏈接到其他地方 –

+2

你是什麼意思?它在jsfiddle上,是不是更容易在那裏調試它現場? 編輯:哦,你想包括代碼和小提琴鏈接。我的錯。將來會做,對此抱歉! –

回答

4

寫一個if聲明,數組長度比較i

if(a.length - 1 === i) { 
    console.log('loop ends'); 
} 

或者你可以使用一個三元

(a.length - 1 === i) ? console.log('Loop ends') : ''; 

Demo

另外請注意,我用- 1因爲數組索引啓動從0和長度返回從1計數,以便比較陣列與長度我們否定-1

+1

-1的原因是什麼?.. –

+1

肯定將此標記爲最佳。我想問的原因是我通過json循環運行動態地圖生成器,我需要告訴玩家何時完成加載地圖對象。 (不是真的可能是最好的方式,因爲在圖像可能仍然加載,但現在這種方式是好的..大聲笑)謝謝@Mr。外星人!標記爲最好,因爲你也解釋了-1。 –

+0

另外,@Mr。外星人,如果它在循環中的對象內,我會使用Object.keys(長度),是否正確? –

3
if (i == a.length - 1) { 
    // your code here 
3

可以使病情在如果是這樣的:

function gi(id){return document.getElementById(id)} 
a= [1,5,1,2,3,5,3,4,3,4,3,1,3,6,7,752,23]; 

for(i=0; i < a.length; i++){ 
    if (i==(a.length-1)){ //give your condition here 
    //your stuff 
    } 
    gi('test').innerHTML+=''+a[i]+' <br>'; 
} 
2

你可以試試這個:

if(i === a.length - 1) { 
    //some code 
}