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

js
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, wird fromIndex + array.length verwendet. Beachten Sie, dass das Array in diesem Fall dennoch von vorne nach hinten durchsucht wird.
  • Wenn fromIndex < -array.length ist oder fromIndex weggelassen wird, wird 0 verwendet, wodurch das gesamte Array durchsucht wird.
  • Wenn fromIndex >= array.length ist, wird das Array nicht durchsucht und -1 zurückgegeben.

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.

js
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.

js
const array = [NaN];
array.indexOf(NaN); // -1

Alle Vorkommen eines Elements finden

js
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

js
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.

js
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.

js
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

Browser-Kompatibilität

Siehe auch