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
Syntax
indexOf(searchElement)
indexOf(searchElement, fromIndex)
Parameter
searchElement
-
Element, das im Array gefunden werden soll.
fromIndex
Optional-
Nullbasierter Index, bei dem die Suche beginnen soll, konvertiert zu einer ganzen Zahl.
- 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
oderfromIndex
weggelassen wird, wird0
verwendet, wodurch das gesamte Array durchsucht wird. - Wenn
fromIndex >= array.length
, 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 (dem gleichen Algorithmus, der vom ===
Operator verwendet wird). NaN
Werte werden nie als gleich verglichen, daher gibt indexOf()
immer -1
zurück, wenn searchElement
NaN
ist.
Die indexOf()
Methode überspringt leere Stellen in sparse arrays.
Die indexOf()
Methode ist generisch. Sie erwartet nur, dass der this
Wert eine length
Eigenschaft und integer-basierte Schlüsselwerteigenschaften hat.
Beispiele
Verwendung von indexOf()
Im folgenden Beispiel wird indexOf()
verwendet, um Werte in einem Array zu lokalisieren.
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
Finden aller Vorkommen eines Elements
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üfen, ob ein Element im Array existiert oder nicht und Aktualisieren des Arrays
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 sparse arrays
Sie können indexOf()
nicht verwenden, um nach leeren Stellen in sparse arrays zu suchen.
console.log([1, , 3].indexOf(undefined)); // -1
Aufruf von indexOf() bei Nicht-Array-Objekten
Die indexOf()
Methode liest die length
Eigenschaft von this
und greift dann auf jede Eigenschaft zu, deren Schlüssel eine nicht-negative ganze Zahl 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 Language Specification # sec-array.prototype.indexof |
Browser-Kompatibilität
BCD tables only load in the browser