Einführung
In diesem Lab werden wir das Konzept des Initialisierens und Befüllens eines Arrays mit Werten, die von einer Funktion generiert werden, untersuchen, während eine bestimmte Bedingung erfüllt ist. Wir werden die initializeArrayWhile-Funktion verwenden, die zwei Funktionen als Argumente erhält, eine Bedingungsfunktion und eine Mappingfunktion. Dieses Lab wird Ihnen helfen, zu verstehen, wie man ein benutzerdefiniertes Array basierend auf einer bestimmten Bedingung und einer Mappingfunktion erstellt.
Wie man ein Array in JavaScript mit einer While-Schleife initialisiert und füllt
Um zu beginnen, JavaScript zu programmieren, öffnen Sie das Terminal/SSH und geben Sie node ein.
Die initializeArrayWhile-Funktion initialisiert und füllt ein Array mit Werten, die von einer Funktion generiert werden, solange eine Bedingung erfüllt ist. So funktioniert es:
- Erstellen Sie ein leeres Array namens
arr, eine Indexvariable namensiund ein Element namensel. - Verwenden Sie eine
while-Schleife, um Elemente mit dermapFn-Funktion dem Array hinzuzufügen, solange dieconditionFn-Funktion für den gegebenen Indexiund das Elementeltruezurückgibt. - Die
conditionFn-Funktion nimmt drei Argumente entgegen: den aktuellen Index, das vorherige Element und das Array selbst. - Die
mapFn-Funktion nimmt drei Argumente entgegen: den aktuellen Index, das aktuelle Element und das Array selbst. - Die
initializeArrayWhile-Funktion gibt das Array zurück.
Hier ist der Code:
const initializeArrayWhile = (conditionFn, mapFn) => {
const arr = [];
let i = 0;
let el = mapFn(i, undefined, arr);
while (conditionFn(i, el, arr)) {
arr.push(el);
i++;
el = mapFn(i, el, arr);
}
return arr;
};
Sie können die initializeArrayWhile-Funktion verwenden, um ein Array mit Werten zu initialisieren und zu füllen. Beispielsweise:
initializeArrayWhile(
(i, val) => val < 10,
(i, val, arr) => (i <= 1 ? 1 : val + arr[i - 2])
); // [1, 1, 2, 3, 5, 8]
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Initialize Array While" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.