Einführung
In diesem Lab werden wir das Konzept des Findens der letzten n Elemente, die eine gegebene Bedingung erfüllen, in einem Array erkunden. Wir werden lernen, wie man eine for-Schleife verwendet, um durch das Array zu iterieren und eine bereitgestellte Funktion auf jedes Element auszuführen. Wir werden auch lernen, wie man die Array.prototype.unshift()-Methode verwendet, um passende Elemente am Anfang des Ergebnissesarrays anzufügen und es zurückzugeben, sobald die gewünschte Länge erreicht ist.
Anweisungen zum Finden der letzten N Übereinstimmungen
Um die letzten n Elemente zu finden, die einer bestimmten Bedingung entsprechen, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Codeausführung zu beginnen. - Verwenden Sie die unten bereitgestellte
findLastN-Funktion. - Geben Sie ein Array
arrund einematcher-Funktion an, die für die Elemente, die Sie zu treffen möchten, einen wahren Wert zurückgibt. - Optional können Sie auch die Anzahl
nder Übereinstimmungen angeben, die Sie zurückgeben möchten (Standardwert ist 1). - Die Funktion wird die
matcher-Funktion für jedes Element vonarrmithilfe einerfor-Schleife von hinten beginnend ausführen. - Wenn ein Element der
matcher-Bedingung entspricht, wird es mithilfe vonArray.prototype.unshift()zum Ergebnissarray hinzugefügt, was die Elemente am Anfang des Arrays einfügt. - Wenn die Länge des Ergebnissarrays gleich
nist, wird die Funktion das Ergebnis zurückgeben. - Wenn es keine Übereinstimmungen gibt oder
ngrößer ist als die Anzahl der Übereinstimmungen, wird ein leeres Array zurückgegeben.
const findLastN = (arr, matcher, n = 1) => {
let res = [];
for (let i = arr.length - 1; i >= 0; i--) {
const el = arr[i];
const match = matcher(el, i, arr);
if (match) res.unshift(el);
if (res.length === n) return res;
}
return res;
};
Hier sind einige Beispiele für die Verwendung der findLastN-Funktion:
findLastN([1, 2, 4, 6], (n) => n % 2 === 0, 2); // [4, 6]
findLastN([1, 2, 4, 6], (n) => n % 2 === 0, 5); // [2, 4, 6]
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Find Last N Matches" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.