如何通过 FOR 循环进行此继续迭代。停留在索引 5

Posted

技术标签:

【中文标题】如何通过 FOR 循环进行此继续迭代。停留在索引 5【英文标题】:How do I make this continue iteration through the FOR loop. Stuck on index 5 【发布时间】:2020-10-22 13:23:34 【问题描述】:

我正在为我正在学习的课程的初学者项目构建连接四。我无法让它在过去的索引 5 上移动。它似乎仍然返回 true 索引 5 未定义,即使在我第一次单击它之后,它已变成红色。我认为它会在每次单击后运行 for 循环,再次从 5 开始,但它会返回 False,然后返回到下一个索引 4,检查那个,等等。我查了很多,我只是卡住了。我想不通。

我知道代码在游戏的长期运行中并不完整;我只是想理解这一步,不管代码有多难看,这样我就可以继续下一段了。

    var gClass = $(".G")

function returnBackgroundColor(rowIndex,colIndex)
  // console.log($(colIndex[rowIndex]).prop("background-color"));
  // console.log(rowIndex);
  return($(colIndex[rowIndex]).prop("background-color"));


function changeColor(row, someClass)
  someClass.eq(row).css("background-color","red");


function checkColor(someClass)
  someClass.click(function() 
    for (var row = 5; row > -1; row--) 
      if (returnBackgroundColor(row, someClass) === undefined)
        console.log(row);
        return changeColor(row, someClass);
      else 
        console.log("False");
      
    
  )


checkColor(gClass)

【问题讨论】:

这能回答你的问题吗? Stuck in For loop iteration of index 5 using javascript/jQuery 【参考方案1】:

您可以使用增量而不是减量。并且最好在循环中使用动态端点

【讨论】:

【参考方案2】:

那是因为return changeColor(row, someClass);,这里你是从整个函数返回的。并结束 for 循环。

如果您想转到下一个索引,只需使用continue,但这不是必需的,因为您的范围已经完成

for(let i =0; i < 5; i++)
for (var row = 5; row > -1; row--) 
  if (returnBackgroundColor(row, someClass) === undefined)
    console.log(row);
    changeColor(row, someClass);
   else 
    console.log("False");
  

【讨论】:

【参考方案3】:

您在 returnBackgroundColor 函数中滥用了 .prop$.prop 返回 html 属性并且不能直接作用于样式。您可以尝试这样的比较来代替:$(colIndex[rowIndex]).css('background-color')

【讨论】:

以上是关于如何通过 FOR 循环进行此继续迭代。停留在索引 5的主要内容,如果未能解决你的问题,请参考以下文章

python--迭代

根据向量大小在 for 循环内擦除 std::vector 的索引

python_如何在一个for循环中迭代多个可迭代对象?

在 Scala 中使用索引进行高效迭代

在一定时间后继续循环

如何强制结束 for 循环的迭代(不停止 for 循环)?