Signatur
Beschreibung
Die Methode indexOf() von Array-Instanzen gibt den ersten Index zurück, an dem ein gegebenes Element im Array gefunden werden kann, oder -1, wenn es nicht vorhanden ist.
Die Methode indexOf() vergleicht searchElement mit Elementen des Arrays unter Verwendung von strikter Gleichheit (derselbe Algorithmus, den der ===-Operator verwendet). NaN-Werte werden niemals als gleich verglichen, daher gibt indexOf() immer -1 zurück, wenn searchElement NaN ist.
Die Methode indexOf() überspringt leere Slots in sparse Arrays.
Die Methode indexOf() ist generisch. Sie erwartet nur, dass der this-Wert eine length-Eigenschaft und ganzzahlig indizierte Eigenschaften besitzt.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $searchElement Pflicht | any | — | Element, das im Array gesucht werden soll. |
| $fromIndex | number | — | Nullbasierter Index, ab dem die Suche gestartet wird, konvertiert zu einem Integer. Ein negativer Index zählt vom Ende des Arrays zurück — wenn -array.length <= fromIndex < 0, wird fromIndex + array.length verwendet. Beachte, dass das Array in diesem Fall trotzdem von vorne nach hinten durchsucht wird. Wenn fromIndex < -array.length oder fromIndex weggelassen wird, wird 0 verwendet, wodurch das gesamte Array durchsucht wird. Wenn fromIndex >= array.length, wird das Array nicht durchsucht und -1 zurückgegeben. |
Rückgabewert
searchElement im Array; -1, wenn nicht gefunden.Beispiele
Verwendung von indexOf()
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
indexOf() kann nicht zum Suchen von NaN verwendet werden
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.
indexOf() auf sparse Arrays anwenden
console.log([1, , 3].indexOf(undefined)); // -1
indexOf() auf Nicht-Array-Objekten aufrufen
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