Come in ogni altro linguaggio di programmazione anche in Javascript è possibile creare Array di dati, a differenza delle normali
variabili che possono contenere un solo dato chiaramente di qualsiasi tipo, ma uno solo, gli Array possono contenerne una quantità arbitraria ognuno dei quali
di qualsiasi tipo in quanto il linguaggio Javascript nelle dichiarazioni di variabili e Array non richiede il tipo di dato, ma ogni variabile o Array può
contenere qualsiasi tipo di dato, per esempio in punti diversi del codice una stessa variabile può contenere all'inizio un numero, poi successivamente una
stringa, o un valore booleano e così via.
Dichiarazione di un array
var lista = new Array()
Questa istruzione crea un Array di nome lista, inizialmente non contiene elementi in quanto all'interno delle parentesi tonde non è stato
inserito niente, se vi avessi inserito un numero, ad esempio 3 l'istruzione avrebbe creato un Array di tre elementi rispettivamente indicizzati dal numero zero
al numero due (tre elementi), ma questo è superfluo perchè se in seguito avessi inserito nel codice una istruzione che assegna ad esempio un valore di 25 a
lista[7] che non è stata dichiarata in quanto come detto in precedenza avevo creato un Array di tre elementi, Javascript avrebbe automaticamente espanso l'Array
lista fino a 7 elementi (dall'indice zero al sei) senza causare alcun errore di esecuzione.
Inserimento di dati in un Array
I dati che vengono inseriti in un array in javascript sono comunemente definiti item, sostanzialmente ci sono due modi, il primo consiste
nell'inserire ogni singolo dato di ogni singolo item scrivendo a sinistra il nome dell'array seguito da una parentesi quadra aperta poi un indice numerico e per
chiudere un'altra parentesi quadra di chiusura seguito da un segno di uguale eppoi dal valore che l'item dovrà assumere, nel caso che si voglia inserire una
stringa questa dovrà essere contenuta tra due apici, come nell'esempio sotto.
var clienti=new Array() clienti[0]="paolo"; clienti[1]="martina"; clienti[3]="nicoletta"; clienti[4]="michele";
Il secondo modo invece consiste nell'inserire i dati nell'array direttamente all'atto della dichiarazione tra parentesi tonde come
vediamo quì sotto.
var clienti=new Array("paolo","nicoletta","patrizia",55,125)
Notare che nelle righe di codice dove si dichiarano variabili o in questo caso array, ma più in generale quando si usa la parola
riservata
var non è necessario terminare la riga con il punto e virgola.
La proprietà length
Quando è necessario conoscere la lunghezza di un array è possibile utilizzare la proprietà length che restituisce il numero di
item contenuti nell'array. Quando questa proprietà viene utilizzata con una stringa restituisce il numero di caratteri presenti nella stringa. Ecco
quì sotto un esempio.
<script type="text/javascript"> var nomi=new Array("paolo","pippo","maddalena","francesca","michela") var p p=nomi.length;
document.write("nell'array nomi sono contenuti "+p+" item"); </script>
Copiando e incollando questo codice in una pagina HTML all'interno del tag body e mandandolo in esecuzione l'output che si
ottiene è questo.
nell'array nomi sono contenuti 5 item
Dall'indice zero all'indice quattro, cioè cinque item.
Aggiungere ed eliminare item: metodi push, pop, unshift, shift
Grazie ai metodi push e pop è possibile rispettivamente aggiungere ed eliminare item in coda all'array, per vedere come
funzionano copiamo ed incolliamo in una pagina HTML il codice sottostante sempre all'interno del tag body e mandiamolo in esecuzione.
<script type="text/javascript">
var nomi=new Array("paolo","nicoletta","francesca") var a
document.write("<b>item presenti</b>"+"<br>"); for(a=0;a<nomi.length;a++) document.write(nomi[a]+"<br>");
document.write("<br><b>aggiungo giorgio all'array</b>"+"<br>"); nomi.push("giorgio");
for(a=0;a<nomi.length;a++) document.write(nomi[a]+"<br>");
document.write("<br><b>elimino giorgio e francesca</b>"+"<br>"); nomi.pop(); nomi.pop();
for(a=0;a<nomi.length;a++)
document.write(nomi[a]+"<br>"); </script>
Per quanto riguarda i metodi unshift e shift, invece di aggiungere ed eliminare item in coda aggiungono
ed eliminano item in cima alla lista. Sotto un esempio.
<script type="text/javascript">
var nomi=new Array("paolo","nicoletta","francesca") var a
document.write("<b>item presenti</b>"+"<br>"); for(a=0;a<nomi.length;a++) document.write(nomi[a]+"<br>");
document.write("<br><b>aggiungo giorgio e martina in cima all'array</b>"+"<br>");
nomi.unshift("giorgio"); nomi.unshift("martina");
for(a=0;a<nomi.length;a++) document.write(nomi[a]+"<br>");
document.write("<br><b>elimino martina</b>"+"<br>"); nomi.shift();
for(a=0;a<nomi.length;a++)
document.write(nomi[a]+"<br>"); </script>
Ordinare un array: sort e reverse
L'oggetto Array() prevede anche un metodo che permette di ordinare in ordine alfabetico l'array e un metodo che permette di invertire
l'ordine dell'array. L'array viene ordinato in ordine alfabetico secondo il codice Ascii di ogni carattere quindi giusto per fare un esempio la lettera a
non sarà la stessa cosa della lettera A perchè lo stesso carattere in minuscolo ed in maiuscolo ha un codice Ascii differente.
Il metodo reverse inverte semplicemente l'ordine degli item secondo come l'array si trova in quel momento, così se
prima si mette in ordine alfabetico l'array con il metodo sort e poi lo si passa al metodo reverse si ottiene l'array in ordine alfabetico ma
al contrario. Quì sotto un esempio.
<script type="text/javascript">
var nomi=new Array("paolo","nicoletta","francesca","mirella","roberto","antonio","claudia") var a
document.write("<b>item presenti</b>"+"<br>");
for(a=0;a<nomi.length;a++) document.write(nomi[a]+"<br>");
document.write("<br><b>ordino
alfabeticamente con il metodo sort</b>"+"<br>");
nomi.sort();
for(a=0;a<nomi.length;a++) document.write(nomi[a]+"<br>");
document.write("<br><b>inverto l'ordine dell'array con il metodo reverse</b>"+"<br>");
nomi.reverse();
for(a=0;a<nomi.length;a++)
document.write(nomi[a]+"<br>"); </script>
Concatenare due o più array: concat
Per concatenare due o più array in un colpo solo possiamo usare il metodo concat, il suo utilizzo è molto semplice, basta guardare
l'esempio sotto per capire subito.
<script type="text/javascript"> var a var bibite=new Array("aranciata","acqua","vino","succo","thè","caffè") var liquori=new
Array("sambuca","brandy","grappa","amaretto","fernet") var primi=new Array("penne","tagliatelle","tortellini","spaghetti","gnocchi") var lista=new Array()
lista=bibite.concat(liquori,primi);
for(a=0;a<lista.length;a++) document.write(lista[a]+"<br>"); </script>
Convertire un array in stringa: toString e join
Questi due metodi permettono di convertire un array in stringa, si differenziano solo per il fatto che toString converte un
array in stringa separando ogni elemento con una virgola, join invece permette di scegliere il o i caratteri da usare per la separazione. Sotto gli
esempi.
<script type="text/javascript"> var a var bibite=new Array("aranciata","acqua","vino","succo","thè","caffè")
document.write("<b>esempio di toString()</b><br>"); document.write(bibite.toString()+"<br><br>");
document.write("<b>esempio di join()</b><br>");
document.write(bibite.join("--"));
</script>
|