Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Array.prototype.indexOf()

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

Die Methode indexOf() von Array-Instanzen gibt den ersten Index zurück, an dem ein bestimmtes Element im Array gefunden wird, 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 nullbasierte Index, ab dem die Suche beginnt, in eine Ganzzahl umgewandelt.

  • Ein negativer Index zählt vom Ende des Arrays zurück. Wenn -array.length <= fromIndex < 0 gilt, wird fromIndex + array.length verwendet. Das Array wird auch in diesem Fall von vorne nach hinten durchsucht.
  • Wenn fromIndex < -array.length gilt oder fromIndex weggelassen wird, wird 0 verwendet und damit das gesamte Array durchsucht.
  • Wenn fromIndex >= array.length gilt, wird das Array nicht durchsucht und -1 zurückgegeben.

Rückgabewert

Der erste Index von searchElement im Array; -1, wenn das Element nicht gefunden wird.

Beschreibung

Die Methode indexOf() vergleicht searchElement mit den Elementen des Arrays anhand von strikter Gleichheit (demselben Algorithmus, den der Operator === verwendet). Werte von NaN werden niemals als gleich betrachtet. Daher gibt indexOf() immer -1 zurück, wenn searchElement den Wert NaN hat.

Die Methode indexOf() überspringt leere Positionen in Arrays mit Lücken.

Die Methode indexOf() ist generisch. Sie setzt lediglich voraus, dass der this-Wert eine length-Eigenschaft und Eigenschaften mit ganzzahligen Schlüsseln besitzt.

Beispiele

indexOf() verwenden

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

Mit indexOf() können Sie nicht nach NaN 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]

Prüfen, ob ein Element im Array vorhanden ist, 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.

indexOf() bei Arrays mit Lücken verwenden

Mit indexOf() können Sie nicht nach leeren Positionen in Arrays mit Lücken suchen.

js
console.log([1, , 3].indexOf(undefined)); // -1

indexOf() für Objekte aufrufen, die keine Arrays sind

Die Methode indexOf() liest die length-Eigenschaft von this und greift dann auf jede Eigenschaft zu, deren Schlüssel eine nicht negative Ganzzahl 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

Spezifikation
ECMAScript® 2027 Language Specification
# sec-array.prototype.indexof

Browser-Kompatibilität

Siehe auch