Array.prototype.indexOf()
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 indexOf()
-Methode von Array
-Instanzen gibt den ersten Index zurück, an dem ein bestimmtes Element im Array gefunden werden kann, oder -1
, wenn es nicht vorhanden ist.
Probieren Sie es aus
const beasts = ["ant", "bison", "camel", "duck", "bison"];
console.log(beasts.indexOf("bison"));
// Expected output: 1
// Start from index 2
console.log(beasts.indexOf("bison", 2));
// Expected output: 4
console.log(beasts.indexOf("giraffe"));
// Expected output: -1
Syntax
indexOf(searchElement)
indexOf(searchElement, fromIndex)
Parameter
searchElement
-
Das zu suchende Element im Array.
fromIndex
Optional-
Nullbasierter Index, ab dem die Suche beginnt (zum Integer konvertiert).
- Ein negativer Index zählt vom Ende des Arrays zurück – wenn
-array.length <= fromIndex < 0
, wirdfromIndex + array.length
verwendet. Beachten Sie, dass in diesem Fall das Array dennoch von vorne nach hinten durchsucht wird. - Wenn
fromIndex < -array.length
oderfromIndex
weggelassen wird, wird0
verwendet, wodurch das gesamte Array durchsucht wird. - Wenn
fromIndex >= array.length
, wird das Array nicht durchsucht und-1
wird zurückgegeben.
- Ein negativer Index zählt vom Ende des Arrays zurück – wenn
Rückgabewert
Der erste Index von searchElement
im Array; -1
, falls nicht gefunden.
Beschreibung
Die indexOf()
-Methode vergleicht searchElement
mit den Elementen des Arrays unter Verwendung von strikter Gleichheit (dasselbe Algorithmus, der vom ===
-Operator verwendet wird). NaN
-Werte werden niemals als gleich angesehen, daher gibt indexOf()
immer -1
zurück, wenn searchElement
NaN
ist.
Die indexOf()
-Methode überspringt leere Plätze in spärlichen Arrays.
Die indexOf()
-Methode ist generisch. Sie erwartet lediglich, dass der this
-Wert eine length
-Eigenschaft und Integer-Schlüssel-Eigenschaften hat.
Beispiele
Verwendung von indexOf()
Das folgende Beispiel verwendet indexOf()
, um Werte in einem Array zu finden.
const array = [2, 9, 9];
array.indexOf(2); // 0
array.indexOf(7); // -1
array.indexOf(9, 2); // 2
array.indexOf(2, -1); // -1
array.indexOf(2, -3); // 0
Sie können indexOf()
nicht verwenden, um nach NaN
zu suchen.
const array = [NaN];
array.indexOf(NaN); // -1
Alle Vorkommen eines Elements finden
const indices = [];
const array = ["a", "b", "a", "c", "a", "d"];
const element = "a";
let idx = array.indexOf(element);
while (idx !== -1) {
indices.push(idx);
idx = array.indexOf(element, idx + 1);
}
console.log(indices);
// [0, 2, 4]
Prüfen, ob ein Element im Array existiert, und das Array aktualisieren
function updateVegetablesCollection(veggies, veggie) {
if (veggies.indexOf(veggie) === -1) {
veggies.push(veggie);
console.log(`New veggies collection is: ${veggies}`);
} else {
console.log(`${veggie} already exists in the veggies collection.`);
}
}
const veggies = ["potato", "tomato", "chillies", "green-pepper"];
updateVegetablesCollection(veggies, "spinach");
// New veggies collection is: potato,tomato,chillies,green-pepper,spinach
updateVegetablesCollection(veggies, "spinach");
// spinach already exists in the veggies collection.
Verwendung von indexOf() bei spärlichen Arrays
Sie können indexOf()
nicht verwenden, um nach leeren Plätzen in spärlichen Arrays zu suchen.
console.log([1, , 3].indexOf(undefined)); // -1
Aufrufen von indexOf() auf Nicht-Array-Objekten
Die indexOf()
-Methode 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: 4,
3: 5, // ignored by indexOf() since length is 3
};
console.log(Array.prototype.indexOf.call(arrayLike, 2));
// 0
console.log(Array.prototype.indexOf.call(arrayLike, 5));
// -1
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-array.prototype.indexof |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
indexOf |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support