Metoden indexOf
Metoden indexOf utför sökning efter ett element
i en array. I den första parametern
anger vi elementet att söka efter.
Metoden returnerar index för första förekomsten av elementet,
eller -1 om elementet inte finns.
Den andra valfria parametern i metoden
anger positionen från vilken sökningen
ska börja.
Syntax
array.indexOf(element, [startposition]);
Exempel
Låt oss hitta positionen för den första trean i arrayen:
let arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);
console.log(res);
Resultatet av kodkörningen:
2
Exempel
Låt oss nu anta att elementet inte finns i arrayen:
let arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);
console.log(res);
Resultatet av kodkörningen:
-1
Exempel
Låt oss börja sökningen från en given position:
let arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);
console.log(res);
Resultatet av kodkörningen:
5
Vanligt misstag
Ibland används metoden för att kontrollera förekomsten av ett element i en array. I detta fall är det lätt att göra ett misstag om kontrollen utförs på följande sätt:
if (arr.indexOf(3)) {
console.log(true);
} else {
console.log(false);
}
Denna kontroll kommer att fungera för
alla positioner utom nollpositionen - eftersom
den tolkas som false.
Rätt sätt att kontrollera förekomsten av ett element är på följande sätt:
if (arr.indexOf(3) !== -1) {
console.log(true);
} else {
console.log(false);
}
Se även
-
metoden
includes,
som kontrollerar förekomsten av ett element i en array -
metoden
lastIndexOf,
som söker element från slutet -
metoden
at,
som returnerar ett arrayelement efter dess index -
metoden
match,
som söker matchningar i en sträng -
metoden
search,
som utför sökning