Metoda indexOf

Metoda indexOf provádí vyhledávání prvku v poli. V prvním parametru zadáme prvek, který hledáme. Metoda vrací index prvního nalezeného prvku, nebo -1, pokud takový prvek neexistuje. Druhý volitelný parametr metody nastavuje pozici, od které má vyhledávání začít.

Syntaxe

javascriptpole.indexOf(prvek, [odkud začít]);

Příklad

Pojďme najít pozici první trojky v poli:

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

console.log(res);

Výsledek provedení kódu:

javascript2

Příklad

Nyní nechť kontrolovaný prvek v poli neexistuje:

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

console.log(res);

Výsledek provedení kódu:

javascript-1

Příklad

Začněme vyhledávání od zadané pozice:

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

console.log(res);

Výsledek provedení kódu:

javascript5

Častá chyba

Metoda je někdy používána pro kontrolu přítomnosti prvku v poli. V tomto případě lze snadno udělat chybu, pokud se kontrola provede následujícím způsobem:

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

Tato kontrola bude fungovat pro všechny pozice kromě nulté - ta je interpretována jako false.

Správně se přítomnost prvku kontroluje následujícím způsobem:

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

Viz také

  • metoda includes,
    která kontroluje přítomnost prvku v poli
  • metoda lastIndexOf,
    která hledá prvky od konce
  • metoda at,
    která vrací prvek pole podle jeho indexu
  • metoda match,
    která hledá shody v řetězci
  • metoda search,
    která provádí vyhledávání