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 July 2015.
Die lastIndexOf()
-Methode von Array
-Instanzen gibt den letzten Index zurück, an dem ein bestimmtes Element im Array gefunden werden kann, oder -1, wenn es nicht vorhanden ist. Das Array wird rückwärts durchsucht, beginnend bei fromIndex
.
Probieren Sie es aus
const animals = ["Dodo", "Tiger", "Penguin", "Dodo"];
console.log(animals.lastIndexOf("Dodo"));
// Expected output: 3
console.log(animals.lastIndexOf("Tiger"));
// Expected output: 1
Syntax
lastIndexOf(searchElement)
lastIndexOf(searchElement, fromIndex)
Parameter
searchElement
-
Element, das im Array gesucht werden soll.
fromIndex
Optional-
Nullbasierter Index, bei dem mit der rückwärtsgerichteten Suche begonnen wird, in eine Ganzzahl umgewandelt.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
-array.length <= fromIndex < 0
, wirdfromIndex + array.length
verwendet. - Wenn
fromIndex < -array.length
, wird das Array nicht durchsucht und-1
zurückgegeben. Man kann sich dies konzeptionell so vorstellen: Es wird an einer nicht existierenden Position vor dem Beginn des Arrays gestartet und von dort aus rückwärts gegangen. Es gibt keine Array-Elemente auf dem Weg, daher wirdsearchElement
nie gefunden. - Wenn
fromIndex >= array.length
ist oderfromIndex
weggelassen wird, wirdarray.length - 1
verwendet, sodass das gesamte Array durchsucht wird. Konzeptionell betrachtet beginnt die Suche an einer nicht existierenden Position hinter dem Ende des Arrays und geht von dort rückwärts. Schließlich wird die reale Endposition des Arrays erreicht, ab der rückwärts durch die tatsächlichen Array-Elemente gesucht wird.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
Rückgabewert
Der letzte Index von searchElement
im Array; -1
, wenn nicht gefunden.
Beschreibung
Die Methode lastIndexOf()
vergleicht searchElement
mithilfe von strikter Gleichheit (derselbe Algorithmus wie bei dem ===
-Operator) mit den Elementen des Arrays. NaN
-Werte werden niemals als gleich verglichen, daher gibt lastIndexOf()
immer -1
zurück, wenn searchElement
NaN
ist.
Die Methode lastIndexOf()
überspringt leere Slots in dünn besetzten Arrays.
Die Methode lastIndexOf()
ist generisch. Sie erwartet nur, dass der this
-Wert eine length
-Eigenschaft und integerbasierte Schlüssel-Eigenschaften besitzt.
Beispiele
Verwendung von lastIndexOf()
Das folgende Beispiel verwendet lastIndexOf()
, um Werte in einem Array zu finden.
const numbers = [2, 5, 9, 2];
numbers.lastIndexOf(2); // 3
numbers.lastIndexOf(7); // -1
numbers.lastIndexOf(2, 3); // 3
numbers.lastIndexOf(2, 2); // 0
numbers.lastIndexOf(2, -2); // 0
numbers.lastIndexOf(2, -1); // 3
Sie können lastIndexOf()
nicht verwenden, um nach NaN
zu suchen.
const array = [NaN];
array.lastIndexOf(NaN); // -1
Finden aller Vorkommen eines Elements
Das folgende Beispiel verwendet lastIndexOf
, um alle Indizes eines Elements in einem gegebenen Array zu finden, wobei push()
verwendet wird, um diese Indizes einem anderen Array hinzuzufügen.
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 der Fall idx === 0
hier separat behandelt werden muss, da das Element unabhängig vom fromIndex
-Parameter immer gefunden wird, wenn es sich um das erste Element des Arrays handelt. Dies unterscheidet sich von der indexOf()
-Methode.
Verwendung von lastIndexOf() bei dünn besetzten Arrays
Sie können lastIndexOf()
nicht verwenden, um leere Slots in dünn besetzten Arrays zu finden.
console.log([1, , 3].lastIndexOf(undefined)); // -1
Aufruf von lastIndexOf() auf Nicht-Array-Objekten
Die Methode lastIndexOf()
liest die length
-Eigenschaft von this
und greift dann auf jede Eigenschaft zu, deren Schlüssel eine nichtnegative Ganzzahl kleiner als length
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));
// 2
console.log(Array.prototype.lastIndexOf.call(arrayLike, 5));
// -1
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-array.prototype.lastindexof |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
lastIndexOf |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support