2016-10-01 7 views
-2

Die Funktion gibt undefined zurück, warum es die Array-Länge nicht zurückgibt. Auch am Anfang des Codes wird in der Konsole gedruckt, aber die Rückgabe funktioniert nicht.Die Rückgabe funktioniert nicht (Javascript)

var resArr = []; 
var p; 

function persistence(num) { 
    resArr.push(num); 
    console.log(resArr); 
    console.log(resArr.length); 
    if (num > 10) { 
     var v = 1; 
     var x = num.toString(); 
     var arr = []; 
     for (i = 0; i < x.length; i++) { 
      arr.push(x.charAt(i)); 
     } 
     console.log(arr); 
     for (j = 0; j < arr.length; j++) { 
      var v = v * arr[j]; 
     } 
     persistence(v); 
    } else { 
     return resArr.length - 1; 
    } 
} 
+0

Wenn geht die Funktion in die 'if' Sie es rekursiv aufrufen, aber Sie das Ergebnis – vlaz

+0

Stark nicht zurück Standard, konsistente Vertiefung empfehlen die Verwendung von - um deiner selbst willen und sicherlich um der Menschen willen, von denen du um Hilfe bittest. –

+2

Bitte versuchen Sie, Ihren Code richtig einzugravieren, und es wird viel einfacher zu folgen sein. Bis Sie den Überblick haben, versuchen Sie es mit einem Tool wie http://jsbeautifier.org/ –

Antwort

1

Sie kommen nicht in allen Fällen zurück.

ändern

persistence(v); 

zu

return persistence(v); 
Verwandte Themen