Baseline Widely available
Die lastIndexOf()
-Methode von Array
-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 bei fromIndex
.
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 gefunden werden soll.
fromIndex
Optional
Nullbasierter Index, ab dem rückwärts gesucht wird, in eine ganze Zahl umgewandelt.
-array.length <= fromIndex < 0
, wird fromIndex + array.length
verwendet.fromIndex < -array.length
, wird das Array nicht durchsucht und -1
zurü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 wird searchElement
nie gefunden.fromIndex >= array.length
oder fromIndex
weggelassen oder undefined
ist, wird array.length - 1
verwendet, 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.Der letzte Index von searchElement
im Array; -1
falls nicht gefunden.
Die lastIndexOf()
-Methode vergleicht searchElement
mit den Elementen des Arrays unter Verwendung von strikter Gleichheit (der gleiche Algorithmus, der vom ===
-Operator verwendet wird). NaN
-Werte werden niemals als gleich verglichen, daher gibt lastIndexOf()
immer -1
zurück, wenn searchElement
NaN
ist.
Die lastIndexOf()
-Methode überspringt leere Plätze in sparsely Arrays.
Die lastIndexOf()
-Methode ist generisch. Sie erwartet lediglich, dass der this
-Wert eine length
-Eigenschaft und ganzzahlige, schlüsselbasierte Eigenschaften hat.
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 gegebenen Array zu finden, indem push()
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 Fall idx === 0
separat behandeln müssen, da das Element immer gefunden wird, unabhängig vom fromIndex
-Parameter, wenn es das erste Element des Arrays ist. Dies unterscheidet sich von der indexOf()
-Methode.
Sie können lastIndexOf()
nicht verwenden, um nach leeren Plätzen in dünn besetzten Arrays zu suchen.
console.log([1, , 3].lastIndexOf(undefined)); // -1
Aufrufen von lastIndexOf() bei Nicht-Array-Objekten
Die lastIndexOf()
-Methode liest die length
-Eigenschaft von this
und greift dann auf jede Eigenschaft zu, deren Schlüssel ein nicht-negativer Integer 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 Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4