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 Element, das im Array gesucht werden soll.
fromIndex
Optional-
Der Index, bei dem begonnen werden soll zu suchen, konvertiert zu einer Ganzzahl.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
-array.length <= fromIndex < 0
, wirdfromIndex + array.length
verwendet. Beachten Sie, dass das Array in diesem Fall dennoch von vorne nach hinten durchsucht wird. - Wenn
fromIndex < -array.length
ist oderfromIndex
weggelassen wird, wird0
verwendet, wodurch das gesamte Array durchsucht wird. - Wenn
fromIndex >= array.length
ist, wird das Array nicht durchsucht und-1
zurückgegeben.
- Ein negativer Index zählt vom Ende des Arrays zurück — wenn
Rückgabewert
Der erste Index von searchElement
im Array; -1
, wenn nicht gefunden.
Beschreibung
Die indexOf()
Methode vergleicht searchElement
mit den Elementen des Arrays unter Verwendung der strikten Gleichheit (dasselbe Algorithmus, der vom ===
Operator verwendet wird). NaN
Werte werden niemals als gleich verglichen, daher gibt indexOf()
immer -1
zurück, wenn searchElement
NaN
ist.
Die indexOf()
Methode überspringt leere Stellen in sparsamen Arrays.
Die indexOf()
Methode ist generisch. Sie erwartet nur, dass der this
Wert eine length
Eigenschaft und ganzzahlige 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]
Überprüfung, 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() auf sparsamen Arrays
Sie können indexOf()
nicht verwenden, um nach leeren Stellen in sparsamen 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 ein nicht-negativer Integer 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® 2026 Language Specification # sec-array.prototype.indexof |