2016-05-03 19 views
-7

Ist es möglich, eine Schleife zu erstellen, aber ohne eingebaute Javascript-Schleifen wie while, for und do? Auch möchte ich Rekursion vermeiden, um Speicher zu sparen.Javascript - Ist es möglich, eine Schleife mit Funktionen zu machen?

Ich stelle mir vor, es würde geschickt eine Funktion aufrufen, lassen Sie es fallen und dann wieder aufrufen, bis die Bedingung erfüllt ist.

edit: hinzugefügt Beispiel

var i = 0; 
var condition = false; 
function loop() { 
    i++; 
    if (i >= 3) { 
     condition = true; 
    } 
} 
loop(); //somehow keep calling until condition is met. 
+0

Um eine Funktion aufzurufen, zu beenden, rufen Sie sie erneut auf, Sie benötigen ... eine Schleife. – ssube

+0

Sie meinen wie 'array.forEach()'? – Barmar

+0

Oder fragen Sie etwas wie Generatoren in anderen Sprachen? – Barmar

Antwort

1

Hier ist, wie Sie einen Code mit einer rekursiven Timer-Funktion wiederholen können:

(function repeat(n){ 
    if (!n) return; 
    console.log("do something"); 
    setTimeout(repeat, 0, n-1); 
})(4); 

Im Gegensatz zu einem (nicht Schwanz optimierte) Rekursion, gibt es keinen kumulativen Speicherverbrauch Hier. Diese Art von Konstrukt ist in einigen Fällen nützlich. Aber nur die Schlüsselwörter for und while zu vermeiden, schlägt nicht als einer von ihnen.

+0

Dies sieht wie ein Lehrbuchbeispiel für Rekursion aus. –

+1

Von der Frage: * "Ich möchte auch Rekursion vermeiden, um Speicher zu sparen." * – Blender

+0

Das ist, was ich gesucht habe. Ich wollte eine Funktion, die ohne kumulativen Speicherverbrauch erneut ausgeführt wird. – ewack

Verwandte Themen