Einführung
In diesem Lab werden wir das Konzept des Findens des letzten Übereinstimmungsindex eines Elements in einem Array mit JavaScript erkunden. Wir werden lernen, wie man die Methoden Array.prototype.map() und Array.prototype.filter() verwendet, um die Elemente auszublenden, für die die bereitgestellte Funktion einen falschen Wert zurückgibt, und Array.prototype.pop(), um das letzte Element im gefilterten Array zu erhalten. Am Ende dieses Labs werden Sie in der Lage sein, mit JavaScript effizient den letzten Übereinstimmungsindex eines Elements in einem Array zu finden.
Wie man mithilfe von JavaScript den Index des letzten übereinstimmenden Elements in einem Array findet
Um den Index des letzten Elements zu finden, das einer bestimmten Bedingung in einem JavaScript-Array entspricht, verwenden Sie die findLastIndex-Funktion. Hier ist, wie man sie verwendet:
const findLastIndex = (arr, fn) =>
(arr
.map((val, i) => [i, val])
.filter(([i, val]) => fn(val, i, arr))
.pop() || [-1])[0];
Die findLastIndex-Funktion nimmt zwei Argumente entgegen: das Array, in dem gesucht werden soll, und eine Funktion, um jedes Element zu testen. Hier ist, wie es funktioniert:
- Verwenden Sie
Array.prototype.map(), um ein neues Array aus[Index, Wert]-Paaren zu erstellen. - Verwenden Sie
Array.prototype.filter(), um Elemente aus dem Array zu entfernen, die der Bedingung, die von derfn-Funktion bereitgestellt wird, nicht entsprechen. - Verwenden Sie
Array.prototype.pop(), um das letzte Element im gefilterten Array zu erhalten. - Wenn das gefilterte Array leer ist, geben Sie
-1zurück.
Hier ist ein Beispiel, wie man findLastIndex verwendet:
findLastIndex([1, 2, 3, 4], (n) => n % 2 === 1); // 2 (Index des Werts 3)
findLastIndex([1, 2, 3, 4], (n) => n === 5); // -1 (Standardwert, wenn nicht gefunden)
Um mit der Programmierung zu beginnen, öffnen Sie das Terminal/SSH und geben Sie node ein.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Find Last Matching Index" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.