在 JavaScript 中循环直到满足条件

Posted

技术标签:

【中文标题】在 JavaScript 中循环直到满足条件【英文标题】:Loop in JavaScript until a condition is met 【发布时间】:2016-05-02 22:19:16 【问题描述】:

我正在尝试无限循环,直到满足条件...以下是否正确?

好像没有。

    var set = false;
    while(set !== true) 
        var check = searchArray(checkResult, number);
        if(check === false) 
            grid.push(number);
            set = true;
         
    

【问题讨论】:

好像不是。真的吗?你能说得更具体点吗? 嗯...我只是想知道我是否可以摆脱这样的循环以及它是否应该工作。如果看起来正确,那么问题一定出在其他地方。 如果不知道searchArray 做什么或checkResultnumber 是什么,我们怎么可能知道 另外添加你的问题是它循环无穷大还是在第一次迭代中停止或或或... number - 是一个随机生成的数字。 searchArray - 就是这样做的。在数组中搜索生成的数字。它返回真或假。如果数字不在数组中...我将其添加到网格中。并将更改设置为 true。我只是想知道我的语法是否真的正确。非常感谢:D 【参考方案1】:

基本上,您可以使用此模式创建一个无限循环,并在循环中的任意位置添加一个中断条件,使用语句break

while (true) 
    // ...
    if (breakCondition)             
        break;
     

【讨论】:

到底有没有休眠这个功能?不想垃圾邮件.. @ScipioAfricanus,不,这种模式不可能......【参考方案2】:

当 searchArray 结果为不为假时,代码将循环,直到它变为。所以如果你想实现这样的行为,代码是正确的,否则它是不正确的。

【讨论】:

【参考方案3】:

让我们回顾一下。您希望代码循环直到函数 searcharray() 返回 true,对吗?

首先,代码创建变量“set”并将其设置为 false。

然后当 set not 等于 true 时(建议在这里使用三等号),运行以下代码:

创建变量“check”并将其设置为 searcharray 返回的值。

如果 searcharray 返回 false,它将在数组网格的末尾添加一个数字作为新条目,然后将“set”设置为 true。

然后它再次循环。如果 searcharray 返回 true,它会再次循环,因为 set 仍然为 false。如果搜索数组返回false,则不再循环,直接跳到最后。

【讨论】:

就是这样。 Nina Scholz 的以下回答似乎是最好的解决方案。不需要另一个变量。

以上是关于在 JavaScript 中循环直到满足条件的主要内容,如果未能解决你的问题,请参考以下文章

尝试循环 API 调用直到满足条件

在循环内进行重复的ajax调用,直到满足条件

C++ Do - While 循环直到字符串满足特定条件

在 do while 循环内部,我想在 c# 中每 1 分钟执行一次特定代码,直到条件满足

循环

迭代地和分层地循环遍历行,直到满足条件