web

Array Javascript

         il mio computer  
 

Javascript array

Pubblicato il: 17-5-2019

Ultima Modifica: 14-12-2024

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>