函数循环问题

Function looping issue

本文关键字:问题 循环 函数      更新时间:2023-09-26

在JQuery上运行语法高亮器时,我发现了一个相当奇怪的问题。我创建的一个函数似乎几乎破坏了它所在的任何循环。然而,在循环之外,它运行得非常好。

有问题的功能是:

function findQuoted(s)
{
    var Quote = 0;
    var F = 0;
    var L = 0;
    var Strings = Array();
    for(i = 0;i < s.length;i++)
    {
        if(s.charAt(i) == '"' && Quote == 0)
        {
            Quote = 1;
            F = i;
        }
        else if(s.charAt(i) == '"' && Quote == 1)
        {
            Strings[Strings.length] = s.substring(F, i + 1);
            Quote = 0;
        }
    }
    return Strings;
}

http://pastebin.com/2wi4Tnn8

如果这是在任何循环中执行的,出于某种奇怪的原因,循环就会停止工作,只运行一次。

在本例中,在继续程序之前,每个警告消息只显示一次。请记住,程序永远不会卡住或不响应,循环只是停止运行。

for(i = 0;i < 5;i++)
{
    alert(findQuoted('"Test" this is a test "test" another test "TEST"'));
    alert('test');
}

在正常情况下,如果不使用此函数,则此循环中的所有内容都将执行6次。然而,由于该函数存在于循环中,因此该函数中的所有内容都只执行一次。

使用

for(var i = 0;i < 5;i++)

否则,您将使用与在另一个循环中迭代相同的变量i