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 に答える