0

好的,所以我有这段代码需要很长时间才能编译。当它碰到它中断的循环时。我怎样才能解决这个问题??

http://jsfiddle.net/HTzUt/2/

提前致谢。

for (var i = 0; i < splitAT.length; i++)
{
    if ( splitAT[i] !== prev )
    {
        splitAT.push(splitAT[i]);
        wordCount.push(1);
    } 
    else 
    {
        wordCount[wordCount.length-1]++;
    }
    prev = splitAT[i];
 }

return [splitAT, wordCount];



document.write('[' + result[0] + ']<br>[' + result[1] + ']') 
4

1 回答 1

1
for (var i = 0; i < splitAT.length; i++)
{
    if ( splitAT[i] !== prev )
    {
        splitAT.push(splitAT[i]);
...

您正在(可能)增加您正在迭代的数组的长度。 push将向数组添加一个额外的项目并增加长度。这将导致循环运行很长时间或可能永远运行,具体取决于数据的结构

于 2013-03-04T23:57:06.423 回答