Il metodo indexOf in JavaScript restituisce la posizione di partenza di un elemento all’interno di un array o di una stringa.
La sintassi di questo metodo è la seguente: nomeArray.indexOf(element)
Dove element è dunque l’elemento di cui si vuole conoscere la posizione.
Così come con il metodo includes, anche in questo caso, opzionalmente si può specificare la posizione dalla quale iniziare, aggiungendo un secondo parametro come argomento di indexOf.
nomeArray.indexOf(element, start).
Il metodo restituisce un valore numerico che corrisponde alla posizione dell’elemento nell’array o nella stringa.
indexOf JavaScript – primo esempio
Conosciamo la posizione di un elemento in un array utilizzando il metodo indexOf().
Supponiamo dunque di avere il seguente array:
var oggettiScolastici = ['gomma', 'quaderno', 'matita'];
Applichiamo quindi il metodo indexOf per conoscere, ad esempio, la posizione dell’elemento quaderno.
var risultato = oggettiScolastici.indexOf('quaderno');
console.log(risultato);
Nella console del browser visualizzerò il valore 1 che corrisponde alla posizione dell’elemento.
indexOf JavaScript – secondo esempio
Visualizzare tutti gli elementi di posizione pari di un array utilizzando il metodo indexOf.
Questo algoritmo si può risolvere anche in altri modi. Qui utilizzeremo il metodo indexOf per analizzare un altro campo di applicazione del seguente metodo.
Creiamo un array di numeri interi. Dopo, con un ciclo for, analizziamo la posizione di ciascun elemento, controllando se è un numero pari. Per farlo utilizziamo, come già visto negli esercizi precedenti, l’operatore modulo ( % ) e calcoliamo il resto della divisione del numero diviso 2.
Quindi solo se è pari visualizziamo il numero, per semplicità, nella console del browser.
Ecco dunque il codice di esempio del metodo indexOf di JavaScript:
var arrayNumeri = [6,12,34,67,89,98,5,2,7,13];
console.log(arrayNumeri);
for (var i = 0; i < arrayNumeri.length; i++) {
if (arrayNumeri.indexOf(arrayNumeri[i]) % 2 == 0){
console.log(arrayNumeri[i]);
}
}
Ricoridamo inoltre che lo stesso algoritmo si poteva risolvere semplicemente in questo modo:
for (var i = 0; i < arrayNumeri.length; i++) {
if (arrayNumeri[i] % 2 == 0){
console.log(arrayNumeri[i]);
}
}
In questa lezione abbiamo affrontato due semplici esempi di utilizzo del metodo indexOf di JavaScript, nelle prossime lezioni proporrò altri esempi.
Alcuni link utili
Introduzione al tutorial JavaScript
Come utilizzare JavaScript alert
Gioco indovina numero in JavaScript
Gioco della morra cinese in JavaScript
Semplice quiz utilizzando gli array
Come realizzare il gioco dei dadi online