为什么这个循环 return 不到第一个索引?

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

我在这里很困惑,当 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};
};

试试这个:

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

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

这将是一个无限循环,因为当循环到达数组中的第 3 个对象时,它将再次从第 1 个开始。 如果你想要一个无限循环,使用 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") {

但请记住,即使满足此条件时 i 被重置为 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++;
            }
         }