Metoden indexOf

Metoden indexOf utfører søk etter et element i en array. I den første parameteren spesifiserer vi elementet som skal søkes etter. Metoden returnerer indeksen til det første funnet elementet, eller -1 hvis elementet ikke finnes. Den andre valgfrie parameteren til metoden angir posisjonen som søket skal starte fra.

Syntaks

javascriptarray.indexOf(element, [startposisjon]);

Eksempel

La oss finne posisjonen til den første treeren i arrayen:

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

console.log(res);

Resultatet av kjøring av koden:

javascript2

Eksempel

La oss nå anta at elementet som sjekkes ikke er i arrayen:

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

console.log(res);

Resultatet av kjøring av koden:

javascript-1

Eksempel

La oss starte søket fra en angitt posisjon:

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

console.log(res);

Resultatet av kjøring av koden:

javascript5

Vanlig feil

Noen ganger brukes metoden for å sjekke om et element finnes i en array. I dette tilfellet er det lett å gjøre en feil hvis sjekken utføres på følgende måte:

javascriptif (arr.indexOf(3)) {
  console.log(true);
} else {
  console.log(false);
}

En slik sjekk vil fungere for alle posisjoner bortsett fra null - fordi den tolkes som false.

Riktig måte å sjekke tilstedeværelsen av et element på er som følger:

javascriptif (arr.indexOf(3) !== -1) {
  console.log(true);
} else {
  console.log(false);
}

Se også

  • metoden includes,
    som sjekker om et element finnes i en array
  • metoden lastIndexOf,
    som søker etter elementer fra slutten
  • metoden at,
    som returnerer array-elementet ved dets indeks
  • metoden match,
    som søker etter treff i en streng
  • metoden search,
    som utfører søk