2015-05-04 74 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 
}