Metodo indexOf
Il metodo indexOf esegue la ricerca di un elemento
in un array. Nel primo parametro
si specifica l'elemento da cercare.
Il metodo restituisce l'indice del primo elemento trovato,
oppure -1, se l'elemento non esiste.
Il secondo parametro opzionale del metodo
imposta la posizione da cui
iniziare la ricerca.
Sintassi
array.indexOf(elemento, [da dove iniziare]);
Esempio
Troviamo la posizione del primo tre nell'array:
let arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);
console.log(res);
Risultato dell'esecuzione del codice:
2
Esempio
Supponiamo ora che l'elemento da verificare non sia nell'array:
let arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);
console.log(res);
Risultato dell'esecuzione del codice:
-1
Esempio
Iniziamo la ricerca dalla posizione specificata:
let arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);
console.log(res);
Risultato dell'esecuzione del codice:
5
Errore comune
A volte il metodo viene utilizzato per verificare la presenza di un elemento in un array. In questo caso è facile commettere un errore se si esegue il controllo nel modo seguente:
if (arr.indexOf(3)) {
console.log(true);
} else {
console.log(false);
}
Questo controllo funzionerà per
tutte le posizioni, tranne quella zero - poiché
essa viene interpretata come false.
È corretto verificare la presenza di un elemento nel modo seguente:
if (arr.indexOf(3) !== -1) {
console.log(true);
} else {
console.log(false);
}
Vedi anche
-
metodo
includes,
che verifica la presenza di un elemento in un array -
metodo
lastIndexOf,
che cerca elementi dalla fine -
metodo
at,
che restituisce l'elemento dell'array in base al suo indice -
metodo
match,
che cerca corrispondenze in una stringa -
metodo
search,
che esegue una ricerca