2016-11-12 1 views
0

ich ein Problem mit einem nicht definierten Wert im folgenden Code habe, dass weder ich noch meine Kollegen erklären kann:Unerklärliche nicht definierten Wert auf Rückkehr

function reverseFactorial(num) { 
    function reverse(altNum, fac){ 
    console.log(altNum + ', ' + fac); 
    if ((altNum/fac) === 1) 
      { 
      console.log(fac.toString() + '!'); 
     return fac.toString() + '!'; 
      } 

     else { 
     reverse(altNum/fac, fac + 1); 
     } 
    } 
    var ret = reverse(num, 1); 
    console.log(ret); 
    return ret; 
} 

Ein Eingang Beispiel könnte sein: reverseFactorial(120).

Die Protokolle würde dies dann zeigen:

120, 1

120, 2

60, 3

20, 4

5, 5

5!

undefined

Antwort

0

Die reverse Funktion kehrt nicht immer einen Wert: die else { Fall hat keine return-Anweisung.

Sie wahrscheinlich zu return reverse(altNum/fac, fac + 1); im else Block.

Verwandte Themen