为什么不't此循环返回到第一个索引

Why doesn't this loop return to the first index?

本文关键字:返回 第一个 索引 循环 为什么不      更新时间:2023-09-26

我很困惑,当if为true时,它不会返回到第一个索引。我不知道为什么我以前这么做过,但我没有把钱存到安全的地方。现在我花了很多时间寻找解决方案,有人能帮我吗?

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};
};

试试这个:

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

我不知道你打算做什么。但你的代码将处于无限循环中。

这样做的结果将是一个无限循环,因为当循环到达数组中的第三个对象时,它将从第一个开始。如果你想要一个无限循环,使用while(true){}会更干净

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;
    }
}

不确定你想做什么,但也许你想要的是:

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

但请记住,即使当满足这个条件时,我被重置为0,它也会在循环的顶部立即被提升到1。然后你会处于一个无限循环中,我从1到2,然后再回来。

您需要切换到while循环。目前,在第一次执行后,您将得到一个永远不会低于1的循环计数器。您将i设置为0,但当循环结束时,它将递增。我用if-then测试将您的代码更改为while循环,以增加循环计数器或将其设置为零。它现在对我很好用。

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