超长循环在8个单词后卡在javascript中

时间:2013-03-04 23:53:24

标签: javascript arrays loops for-loop multidimensional-array

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

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] + ']') 

1 个答案:

答案 0 :(得分:1)

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

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