JavaScript: gli Array

Lezione#07 In questa lezione analizzeremo una delle strutture più diffuse e versatili in ambito JavaScript: l’Array.
Un array è una variabile contenente un riferimento ad un’area di memoria, al cui interno vi sono dei dati. Gli elementi di un array hanno una posizione all’interno dello stesso, che è definita come indice, in particolare il primo elemento ha un indice che parte dal valore 0 –> zero-based index . In JavaScript gli array sono dinamici, ovvero crescono o si riducono in dimensione a seconda che aggiungiamo o rimuoviamo degli elementi, e possono contenere elementi di qualsiasi tipo.
Pertanto, assodato che un array è un tipo speciale di variabile, che contiene diversi valori di uno stesso tipo o anche di diversi tipi, passiamo ad un primo esempio.
// Esempio #01 var supereroi = ["spider-man", "x-men", "flash", "batman"]; console.log(supereroi);
[‘spider-man’,’x-men’, ‘flash’, ‘batman’]
Gli array sono, quindi, un ottimo modo per memorizzare valori correlati. Come abbiamo visto, creiamo un array quando assegniamo, ad una variabile, valori compresi tra parentesi quadre. Possiamo anche creare un array vuoto.
// Esempio #02 var things = []; console.log(things);
[]
Basta non dare elementi all’array!
Gli array, come già scritto, hanno gli elementi in posizioni indicizzate. Per accedere a un valore, inseriamo il suo indice tra parentesi dopo il nome dell’array.
// Esempio #03 var supereroi = ["spider-man", "x-men", "flash", "batman"]; console.log(supereroi[0]);
spider-man
Zero-based index –> le posizioni iniziano a contare da 0.
Gli array sono anche oggetti, il che significa che hanno a loro disposizione anche alcuni metodi. Proviamo ad usare un metodo per trasformare un array in una stringa.
// Esempio #04 var supereroi = ["spider-man", "x-men", "flash", "batman"]; console.log(supereroi.toString()); console.log(supereroi.length);
spider-man,x-men,flash,batman
4
Il metodo toString () trasforma un array in una stringa separata da virgole. Lo stesso risultato si ottiene con join () se non gli passiamo una stringa come separatore. Inoltre con length abbiamo in output la lunghezza dell’array, ossia il numero di elementi in esso contenuti.
Non solo possiamo accedere ad un elemento utilizzando il suo indice, possiamo anche modificare e persino aggiungere elementi.
// Esempio #05 var supereroi = ["spider-man", "x-men", "flash", "batman"]; supereroi[1] = "doctor-x"; console.log(supereroi);
[‘spider-man, ‘doctor-x’, ‘flash’, ‘batman’]
Possiamo modificare un elemento esistente identificandolo attraverso il suo numero di indice; inoltre possiamo anche usare la proprietà length per aggiungere un valore alla fine dell’array.
Ricordando i metodi push e pop in c++, possiamo aggiungere elementi alla fine di un array, utilizzando il metodo push (), così come possiamo prelevare l’ultimo elemento aggiunto attraverso il metodo pop ().
// Esempio #06 var supereroi = ["spider-man", "x-men", "flash", "batman"]; supereroi.push('hulk'); console.log(supereroi);
[ ‘spiderman’, ‘x-men’, ‘flash’, ‘batman’, ‘hulk’ ]
Lo stesso risultato lo otteniamo utilizzando la proprietà length associata alla variabile supereroi –> supereroi[supereroi.length] = ‘hulk’.
Cosa succede se vogliamo evitare il primo elemento di un array? Il metodo shift(), ci permette di traslare all’interno di un array.
// Esempio #07 var supereroi = ["spider-man", "x-men", "flash", "batman"]; supereroi.shift(); console.log(supereroi[0]);
x-men
Come si può notare dalla console, l’elemento di indice 0, è stato occupato da quello che era prima l’elemento di indice 1. C’è stato uno spostamento, uno shift verso sinistra degli elementi dell’array (che ora sono 3 e non più 4). Col metodo unshift () si ha il risultato opposto di shift (), in quanto viene aggiunto un elemento all’inizio di un array.
Un metodo molto interessante, che può aggiungere, inserire, sostituire e rimuovere valori è splice (). Il metodo vuole in ingresso due numeri, il primo è l’indice di partenza, il secondo è l’indice di arrivo.
// Esempio #08 var supereroi = ["spider-man", "x-men", "flash", "batman"]; supereroi.splice(1,2); console.log(supereroi);
[‘spider-man’, ‘batman’ ]
In questo caso abbiamo eliminato gli elementi di indice 1 e 2.
Infine, possiamo usare il metodo sort () per elencare un array in ordine alfabetico. Se vogliamo invertire questo ordine, possiamo usare reverse ().
// Esempio #09 var supereroi = ["spider-man", "x-men", "flash", "batman"]; supereroi.sort(); console.log(supereroi); supereroi.reverse(); console.log(supereroi);
[ ‘batman’, ‘flash’, ‘spider-man’, ‘x-men’ ]
[ ‘x-men’, ‘spider-man’, ‘flash’, ‘batman’ ]
Ritorna alla precedente <– []–> Vai alla successiva