功能循环问题

时间:2013-07-12 19:30:38

标签: javascript jquery function loops

在处理在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次。但是,由于此函数存在于循环中,因此此函数中的所有内容仅执行一次。

1 个答案:

答案 0 :(得分:9)

使用

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

否则你使用的是你用来在另一个循环中迭代的相同变量i