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

javascriptarray.indexOf(elemento, [da dove iniziare]);

Esempio

Troviamo la posizione del primo tre nell'array:

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

console.log(res);

Risultato dell'esecuzione del codice:

javascript2

Esempio

Supponiamo ora che l'elemento da verificare non sia nell'array:

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

console.log(res);

Risultato dell'esecuzione del codice:

javascript-1

Esempio

Iniziamo la ricerca dalla posizione specificata:

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

console.log(res);

Risultato dell'esecuzione del codice:

javascript5

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:

javascriptif (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:

javascriptif (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