2016-11-17 6 views
-3

Sequenz (Start, Schritt)Javascript-Sequenzen mit einer Reihe von Funktionsaufrufen

Diese Funktion nimmt zwei numerische Eingaben, starten und zu stoppen, und gibt eine Funktion der keine Eingänge. Die resultierende Funktion erzeugt eine Folge von Werten beginnend mit Start und Offset für Schritt. Jeder Funktionsaufruf erzeugt den nächsten Wert in der Sequenz. Beispiele

var x = sequence(3, 15); 
[ x(), x(), x() ] => [ 3, 18, 33 ] 
var y = sequence(28, -5); 
[ y(), y(), y() ] => [ 28, 23, 18 ] 

Wie gehe ich über diese Lösung?

+0

Dies ist ein Hinweis, Sequenz Aufruf einer Funktion zurückgibt, gibt diese Funktion einen eigenen Rahmen braucht. Weiter gehen würde verwöhnt werden. – axelduch

+3

Wenn Sie es nicht versuchen, lösen wir nur das Problem für Sie. Wenn Sie zeigen, was Sie versucht haben, zusammen mit Fehlermeldungen und dem tatsächlichen vs. erwarteten Verhalten, können wir genau feststellen, was Sie falsch gemacht haben, und Sie werden viel mehr gelernt haben. –

Antwort

1

sequence gibt nicht einfach eine Funktion zurück. Es gibt eine Funktion mit einer Schließung zurück, die die Start/Schritt-Werte verfolgt. Also sind Start, Schritt und Zähler daran gebunden. So können Sie mit ihnen arbeiten.

function sequence(start, step) { 
 
    var counter = -1; 
 
    return function() { 
 
    // This is the function that will return the next element 
 
    // It uses the counter, start, step variables from its closure 
 
    // Notice they live outside of the inner function so the counter is not reset 
 
    // every time you run this function. 
 
    counter++; 
 
    return start + step * counter; 
 
    }; 
 
}; 
 

 
var x = sequence(1, 3); 
 
var y = sequence(-1, -2); 
 

 
console.log('x()', x(), x(), x()); 
 
console.log('y()', y(), y(), y());

+0

@JLRishe Erhalten Sie keine Warnung, dass Sie eine neuere Version überschreiben? –

+0

Kommentar Aufräumen Zeit :) Dies sind alle jetzt irrelevant. Bitte löschen Sie Ihre eigenen Kommentare –

Verwandte Themen