2015-05-04 2 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 вы ДОЛЖНЫ опубликовать важный код на 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, и мне нужно сообщить игроку, когда объекты карты закончены. (На самом деле, наверное, не лучший способ, так как в изображениях все равно можно загружать, но этот способ на данный момент прекрасен. Lol) Спасибо @Mr. Инопланетянин! Отмечено как лучше, потому что вы объяснили -1 тоже. –

+0

Также, @Mr. Alien, я бы использовал 'Object.keys' (length), если он находится внутри объекта для цикла, правильно? –

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 
} 
Смежные вопросы