Metoden indexOf

Metoden indexOf udfører søgning efter et element i et array. I den første parameter angiver vi elementet, der skal søges efter. Metoden returnerer nummeret på det første fundne element, eller -1, hvis sådant et element ikke findes. Den anden valgfrie parameter for metoden angiver positionen, hvorfra søgningen skal begynde.

Syntaks

javascriptarray.indexOf(element, [startposition]);

Eksempel

Lad os finde positionen for det første tal 3 i arrayet:

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

console.log(res);

Resultatet af kodeudførelsen:

javascript2

Eksempel

Lad os nu sige, at det efterspurgte element ikke er i arrayet:

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

console.log(res);

Resultatet af kodeudførelsen:

javascript-1

Eksempel

Lad os starte søgningen fra en given position:

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

console.log(res);

Resultatet af kodeudførelsen:

javascript5

Almindelig fejl

Nogle gange bruges metoden til at kontrollere tilstedeværelsen af et element i et array. I dette tilfælde er det nemt at lave en fejl, hvis kontrollen udføres på følgende måde:

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

Denne kontrol vil fungere for alle positioner undtagen nul-positionen - da den fortolkes som false.

Korrekt måde at kontrollere tilstedeværelsen af et element på er følgende:

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

Se også

  • metoden includes,
    som kontrollerer tilstedeværelsen af et element i et array
  • metoden lastIndexOf,
    som søger efter elementer fra slutningen
  • metoden at,
    som returnerer et array-element baseret på dets indeks
  • metoden match,
    som søger efter matches i en streng
  • metoden search,
    som udfører søgning