Einführung
In diesem Lab werden wir das Konzept des Findens des letzten Einfügeindex in einem sortierten Array erkunden. Wir werden lernen, wie man überprüft, ob das Array in absteigender Reihenfolge sortiert ist, und wie man Array.prototype.reverse() und Array.prototype.findIndex() verwendet, um den passenden letzten Index zu finden, an dem das Element eingefügt werden sollte. Am Ende dieses Labs werden Sie ein besseres Verständnis dafür haben, wie man die Sortierreihenfolge eines Arrays beibehält.
Beschreibung des letzten Einfügeindex in einem sortierten Array
Um den höchsten Index zu finden, an dem ein Wert in ein Array eingefügt werden sollte, um seine Sortierreihenfolge beizubehalten, folgen Sie diesen Schritten:
- Überprüfen Sie zunächst grob, ob das Array in absteigender Reihenfolge sortiert ist.
- Verwenden Sie dann
Array.prototype.reverse()undArray.prototype.findIndex(), um den passenden letzten Index zu finden, an dem das Element eingefügt werden sollte.
Hier ist der Code für die Funktion:
const sortedLastIndex = (arr, n) => {
const isDescending = arr[0] > arr[arr.length - 1];
const index = arr
.reverse()
.findIndex((el) => (isDescending ? n <= el : n >= el));
return index === -1 ? 0 : arr.length - index;
};
Und hier ist ein Beispiel dafür, wie die Funktion verwendet wird:
sortedLastIndex([10, 20, 30, 30, 40], 30); // 4
Um mit der Programmierung zu beginnen, öffnen Sie das Terminal/SSH und geben Sie node ein.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Letzter Einfügeindex in sortiertem Array" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.