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 gegebenes 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
Syntax
lastIndexOf(searchElement)
lastIndexOf(searchElement, fromIndex)
Parameter
searchElement
-
Element, das im Array zu lokalisieren ist.
fromIndex
Optional-
Nullbasierter Index, bei dem die Suche rückwärts beginnen soll, umgewandelt in eine Ganzzahl.
- 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. Sie können sich das konzeptuell vorstellen, als begänne man an einer nicht existenten Position vor dem Anfang des Arrays und ginge von dort rückwärts. Es gibt keine Array-Elemente auf dem Weg, so dasssearchElement
niemals gefunden wird. - Wenn
fromIndex >= array.length
oderfromIndex
ausgelassen wird, wirdarray.length - 1
verwendet, wodurch das gesamte Array durchsucht wird. Sie können sich das konzeptuell vorstellen, als begänne man an einer nicht existenten Position jenseits des Endes des Arrays und ginge von dort rückwärts. Schließlich erreicht es die reale Endposition des Arrays, an welchem Punkt es beginnt, 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 von searchElement
im Array; -1
, wenn nicht gefunden.
Beschreibung
Die lastIndexOf()
-Methode vergleicht searchElement
mit Elementen des Arrays unter Verwendung von strikter Gleichheit (dem gleichen Algorithmus, den der ===
-Operator verwendet). NaN
-Werte werden nie als gleich verglichen, daher gibt lastIndexOf()
immer -1
zurück, wenn searchElement
NaN
ist.
Die lastIndexOf()
-Methode überspringt leere Slots in spärlichen Arrays.
Die lastIndexOf()
-Methode ist generisch. Sie erwartet lediglich, dass der this
-Wert eine length
-Eigenschaft und integerindizierte Eigenschaften hat.
Beispiele
Verwendung von lastIndexOf()
Das folgende Beispiel verwendet lastIndexOf()
, um Werte in einem Array zu lokalisieren.
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
Alle Vorkommen eines Elements finden
Das folgende Beispiel verwendet lastIndexOf
, um alle Indizes eines
Elements in einem bestimmten Array zu finden, wobei push()
verwendet wird, um diese
hinzuzufügen, wenn sie gefunden werden, in ein anderes Array.
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 den Fall idx === 0
hier separat behandeln müssen, da das
Element immer gefunden wird, unabhängig vom fromIndex
-Parameter, wenn es sich um das
erste Element des Arrays handelt. Dies unterscheidet sich von der
indexOf()
-Methode.
Verwendung von lastIndexOf() auf spärlichen Arrays
Sie können lastIndexOf()
nicht verwenden, um nach leeren Slots in spärlichen Arrays zu suchen.
console.log([1, , 3].lastIndexOf(undefined)); // -1
Aufrufen von lastIndexOf() für Nicht-Array Objekte
Die lastIndexOf()
-Methode liest die length
-Eigenschaft von this
und greift dann auf jede Eigenschaft zu, deren Schlüssel eine nicht-negative ganze Zahl 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 Language Specification # sec-array.prototype.lastindexof |
Browser-Kompatibilität
BCD tables only load in the browser