Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Array.prototype.lastIndexOf()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
DielastIndexOf()-Methode vonArray-Instanzen gibt den letzten Index zurück, an dem ein bestimmtes Element im Array gefunden werden kann, oder -1, falls es nicht vorhanden ist. Das Array wird rückwärts durchsucht, beginnend beifromIndex.
In diesem Artikel
Probieren Sie es aus
const animals = ["Dodo", "Tiger", "Penguin", "Dodo"];console.log(animals.lastIndexOf("Dodo"));// Expected output: 3console.log(animals.lastIndexOf("Tiger"));// Expected output: 1Syntax
lastIndexOf(searchElement)lastIndexOf(searchElement, fromIndex)Parameter
searchElementElement, das im Array gefunden werden soll.
fromIndexOptionalNullbasierter Index, ab dem rückwärts gesucht wird,in eine ganze Zahl umgewandelt.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
-array.length <= fromIndex < 0, wirdfromIndex + array.lengthverwendet. - Wenn
fromIndex < -array.length, wird das Array nicht durchsucht und-1zurückgegeben. Man kann sich dies konzeptionell so vorstellen, als würde man an einer nicht existierenden Position vor dem Anfang des Arrays beginnen und von dort rückwärts gehen. Es gibt keine Array-Elemente auf dem Weg, daher wirdsearchElementnie gefunden. - Wenn
fromIndex >= array.lengthoderfromIndexweggelassen oderundefinedist, wirdarray.length - 1verwendet, wodurch das gesamte Array durchsucht wird. Man kann sich dies konzeptionell so vorstellen, als würde man an einer nicht existierenden Position über dem Ende des Arrays beginnen und von dort rückwärts gehen. Schließlich erreicht es die reale Endposition des Arrays und beginnt dort, rückwärts durch die tatsächlichen Array-Elemente zu suchen.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
Rückgabewert
Der letzte Index vonsearchElement im Array;-1 falls nicht gefunden.
Beschreibung
DielastIndexOf()-Methode vergleichtsearchElement mit den Elementen des Arrays unter Verwendung vonstrikter Gleichheit (der gleiche Algorithmus, der vom===-Operator verwendet wird).NaN-Werte werden niemals als gleich verglichen, daher gibtlastIndexOf() immer-1 zurück, wennsearchElementNaN ist.
DielastIndexOf()-Methode überspringt leere Plätze insparsely Arrays.
DielastIndexOf()-Methode istgenerisch. Sie erwartet lediglich, dass derthis-Wert einelength-Eigenschaft und ganzzahlige, schlüsselbasierte Eigenschaften hat.
Beispiele
>Verwendung von lastIndexOf()
Das folgende Beispiel verwendetlastIndexOf(), um Werte in einem Array zu lokalisieren.
const numbers = [2, 5, 9, 2];numbers.lastIndexOf(2); // 3numbers.lastIndexOf(7); // -1numbers.lastIndexOf(2, 3); // 3numbers.lastIndexOf(2, 2); // 0numbers.lastIndexOf(2, -2); // 0numbers.lastIndexOf(2, -1); // 3Sie könnenlastIndexOf() nicht verwenden, um nachNaN zu suchen.
const array = [NaN];array.lastIndexOf(NaN); // -1Alle Vorkommen eines Elements finden
Das folgende Beispiel verwendetlastIndexOf, um alle Indizes eines Elements in einem gegebenen Array zu finden, indempush() genutzt wird, um sie zu einem anderen Array hinzuzufügen, sobald sie gefunden werden.
const indices = [];const array = ["a", "b", "a", "c", "a", "d"];const element = "a";let idx = array.lastIndexOf(element);while (idx !== -1) { indices.push(idx); idx = idx > 0 ? array.lastIndexOf(element, idx - 1) : -1;}console.log(indices);// [4, 2, 0]Beachten Sie, dass wir hier den Fallidx === 0 separat behandeln müssen, da das Element immer gefunden wird, unabhängig vomfromIndex-Parameter, wenn es das erste Element des Arrays ist. Dies unterscheidet sich von derindexOf()-Methode.
Verwendung von lastIndexOf() in dünn besetzten Arrays
Sie könnenlastIndexOf() nicht verwenden, um nach leeren Plätzen in dünn besetzten Arrays zu suchen.
console.log([1, , 3].lastIndexOf(undefined)); // -1Aufrufen von lastIndexOf() bei Nicht-Array-Objekten
DielastIndexOf()-Methode liest dielength-Eigenschaft vonthis und greift dann auf jede Eigenschaft zu, deren Schlüssel ein nicht-negativer Integer kleiner alslength ist.
const arrayLike = { length: 3, 0: 2, 1: 3, 2: 2, 3: 5, // ignored by lastIndexOf() since length is 3};console.log(Array.prototype.lastIndexOf.call(arrayLike, 2));// 2console.log(Array.prototype.lastIndexOf.call(arrayLike, 5));// -1Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.lastindexof> |