2017-09-04 28 views
-2

なぜ無限ループを作り出すのか分かりません。そうは思われません。何が問題なのですか?無限ループエラーが発生するのはなぜですか?

function smallestCommons(arr) { 

    var max = arr.reduce(function (a, b) { 
     return Math.max(a, b); 
    }); 
    var min = arr.reduce(function (a, b) { 
     return Math.min(a, b); 
    }); 
    var allNums = []; 
    for (var i = min; i <= max; i++) { 
     for (var j = 1; j <= (max^3); i++) { 
      allNums.push(i * j); 
     } 
    } 

} 


smallestCommons([1, 6]); 
+3

「^」は、ビットの排他的論理和演算子であり、「〜への力」ではありません。そのためには['Math.pow'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/pow)が必要です。例えば「6^3」は「5」である。 – Andy

答えて

2

jのように見えるにする必要があり、それは常にあなたのforループ内j<=(max^3)で条件に一致するように増加されることはありません。

私はタイプミスがあると思います。

for(var j=1;j<=(max^3);i++) { 

for (var j=1; j <= (max^3); j++) { 
+0

ありがとうございます@Fotis –

3
for(var j=1;j<=(max^3);i++) 

for(var j=1;j<=(max^3);j++) 
0

する必要がありますが、ループのためのあなたのネストされた
for(var j = 1 ; j <= (max^3) ; j++)

0


for(var j = 1 ; j <= (max^3) ; i++)
を変更する必要があなたのVAR jをインクリメントしたことがありません。

for (var i = min; i <= max; i++) { 
     for (var j = 1; j <= (max^3); j++) { 
      allNums.push(i * j); 
     } 
    } 
関連する問題