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
pole.indexOf(prvek, [odkud začít]);
Příklad
Pojďme najít pozici první trojky v poli:
let arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);
console.log(res);
Výsledek provedení kódu:
2
Příklad
Nyní nechť kontrolovaný prvek v poli neexistuje:
let arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);
console.log(res);
Výsledek provedení kódu:
-1
Příklad
Začněme vyhledávání od zadané pozice:
let arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);
console.log(res);
Výsledek provedení kódu:
5
Č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:
if (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:
if (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í