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

javascriptarray.indexOf(element, [startposition]);

Exempel

Låt oss hitta positionen för den första trean i arrayen:

javascriptlet arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);

console.log(res);

Resultatet av kodkörningen:

javascript2

Exempel

Låt oss nu anta att elementet inte finns i arrayen:

javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);

console.log(res);

Resultatet av kodkörningen:

javascript-1

Exempel

Låt oss börja sökningen från en given position:

javascriptlet arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);

console.log(res);

Resultatet av kodkörningen:

javascript5

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:

javascriptif (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:

javascriptif (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