2015-02-10 2 views
0

Я запутался здесь, когда if верно, он не возвращается к первому индексу. Я не знаю, почему я это сделал раньше, но я не спас в безопасном месте. Теперь я потратил много времени на поиск решения, может кто-нибудь мне помочь?Почему этот цикл не возвращается к первому индексу?

var digital = document.getElementById("placeDiv").style; 

var abc = ["red","blue","green"]; 

for(var i=0;i<3;i++){ 
digital.backgroundColor=abc[i];alert(i);if(abc["green"]){i=0}; 
}; 
+1

Когда будет 'if (abc [" green "])' true? –

+1

Есть лучшие способы создания бесконечных циклов – bluefog

ответ

1

Попробуйте это:

if(abc[i] === "green") 

Я не знаю, что вы собираетесь делать. Но ваш код будет в бесконечном цикле.

+0

Я хочу удалить предупреждение (i), и я знаю, что это возможно ... Я выясню это, так как вы, ребята, обновили мою память. – user2887761

1

Результат этого будет бесконечным циклом, потому что, когда цикл достигнет 3-го объекта в массиве, он начнется снова с 1-го. Если вы хотите бесконечный цикл он чище использовать в то время как (истинно) {}

var digital = document.getElementById("placeDiv").style; 

var abc = ["red","blue","green"]; 

for(var i=0;i<abc.length;i++){ 
    digital.backgroundColor=abc[i]; 
    alert(i); 
    if(abc[i]=="green"){ 
     i=0; 
    } 
} 
+0

Могу ли я удалить предупреждение (i)? – user2887761

1

Не уверен, что вы пытаетесь сделать, но, может быть, что вы хотите:

if (abc[i] === "green") { 

Но держать в виду, что даже если я сбрасываю значение 0, когда это условие выполняется, оно сразу же набирается до 1 в верхней части цикла. Тогда вы будете в бесконечном цикле, когда я перейду от 1 до 2, а затем снова.

1

Вам нужно переключиться на цикл while. В настоящее время вы получите счетчик циклов, который никогда не будет ниже 1 после первого выполнения. Вы устанавливаете i на 0, но когда цикл завершается, он увеличивается. Я изменил ваш код на цикл while с помощью if-then-теста, чтобы либо увеличить счетчик циклов, либо установить его на ноль. Сейчас это работает отлично.

var i=0; 
    while (i<3){ 
      digital.backgroundColor = abc[i]; 
      //alert(i); 
      if(abc[i] === "green"){ 
       i=0 
      } else { 
       i++; 
      } 
     }  
+0

Как можно снять оповещение? Пока только с предупреждением. – user2887761

+0

Извините, но я не понимаю ваш вопрос. Если вы расскажете нам немного больше о том, что вы пытаетесь сделать с этим скриптом, мы сможем помочь вам больше. Если вы просто не хотите показывать предупреждение, вы можете просто удалить его. предупреждение (я); Строка кода. В качестве альтернативы вы можете прокомментировать эту строку. – MKreegs

+0

Я прокомментировал строку предупреждения в моем ответе. Предупреждение больше не отображается, если вы используете этот код. – MKreegs

Смежные вопросы