Einführung
In diesem Lab werden wir die unfold()-Funktion in JavaScript erkunden. Diese Funktion ermöglicht es uns, ein Array zu erstellen, indem wir eine Iterationsfunktion wiederholt mit einem initialen Startwert aufrufen, bis die Funktion false zurückgibt. Durch dieses Lab lernen wir, wie die unfold()-Funktion verwendet werden kann und wie sie dazu genutzt werden kann, bestimmte Programmieraufgaben zu vereinfachen.
Array auseinanderfalten
Um ein Array mit einer Iterationsfunktion und einem initialen Startwert zu erstellen, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Codeausführung zu beginnen. - Verwenden Sie eine
while-Schleife undArray.prototype.push(), um die Iterationsfunktion wiederholt aufzurufen, bis siefalsezurückgibt. - Die Iterationsfunktion sollte ein Argument (
seed) akzeptieren und immer ein Array mit zwei Elementen ([value,nextSeed]) oderfalsezurückgeben, um zu beenden.
Verwenden Sie den folgenden Code, um die unfold-Funktion zu implementieren:
const unfold = (fn, seed) => {
let result = [],
val = [null, seed];
while ((val = fn(val[1]))) result.push(val[0]);
return result;
};
Hier ist ein Beispiel dafür, wie die unfold-Funktion verwendet werden kann:
var f = (n) => (n > 50 ? false : [-n, n + 10]);
unfold(f, 10); // [-10, -20, -30, -40, -50]
Dies erzeugt ein Array mit Werten, die von der Iterationsfunktion f ausgehend vom initialen Startwert von 10 generiert werden. Die Iterationsfunktion generiert bei jedem Schritt ein Array mit zwei Elementen: die Negation des aktuellen Startwerts und den nächsten Startwert, der um 10 erhöht wird. Der Prozess setzt sich fort, bis der Startwert größer als 50 ist, bei dem die Funktion false zurückgibt.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Array auseinanderfalten-Lab abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.