L'Oggetto Array

Argomenti trattati: la gestione degli Array.

Gli Array sono considerati in JavaScript come degli oggetti, la sintassi è perciò caratterizzata dal costruttore new:

var Mio_Array= new Array(Numero_degli_Elementi_presenti);

possono essere compresi immaginandoli come delle variabili contenitore, ovvero delle variabili che contengono più dati. Tali dati, impiegando l'indice dell'Array, possono essere considerati come delle variabili a sé stanti. Normalmente, vengono utilizzati in JavaScript degli Array unidimensionali, che possono essere così rappresentati:

array Sport_Vari
0 "Calcio"
1 "Nuoto"
2 "Tennis"
3 "Ginnastica Artistica"
4 "Pattinaggio"
5 "Spinning"
6 "Lotta libera"
  1. viene definita la variabile contenitore Sport_Vari
  2. questa contiene 7 elementi, a partire da zero (ad esempio, il primo elemento, ovvero l'elemento zero dell'Array Sport_Vari, corrisponde alla stringa "Calcio")
  3. i numeri a fianco delle stringhe sono definiti indice dell'Array (sempre seguendo l'esempio precedente, il primo elemento dell'Array ha indice 0, il secondo elemento dell'Array ha indice 1, e così via)
  4. Gli elementi sono 7 variabili stringa, ovvero sette variabili formate da testo.

Per definire tutto questo in JavaScript, scriviamo, riferendoci all'elenco precedente:

var Sport_Vari= new Array ("Calcio", "Nuoto", "Tennis", "Ginnastica Artistica", "Pattinaggio", "Spinning", "Lotta libera")

oppure:

var Sport_Vari= new Array(7);

Sport_Vari[0]="Calcio";
Sport_Vari[1]="Nuoto";
Sport_Vari[2]="Tennis";
Sport_Vari[3]="Ginnastica Artistica";
Sport_Vari[4]="Pattinaggio";
Sport_Vari[5]="Spinning";
Sport_Vari[6]="Lotta Libera";

Notare con molta attenzione che var Sport_Vari= New Array(7); mostra tra parentesi il valore 7, perché al momento della dichiarazione dell'Array occorre scrivere tra parentesi il numero degli elementi in esso presenti, e non il valore dell'indice finale.

Ci sono vari motivi per cui è meglio utilizzare Array, piuttosto che variabili singole. Tralasciando i vari casi, è per ora importante concentrarsi sugli Array in JavaScript, che hanno caratteristiche proprie, rispetto agli Array in linguaggi come il C o il Visual Basic, cioè linguaggi Strongly Typed. Esaminandole:

array Sport_Vari_e_Numeri
"Calcio"
123
"Tennis"
844
"Pattinaggio"
25
"Lotta libera"

La dimensione dell'Array può variare nel corso dello script, così non darebbe un errore aggiungere al codice

var Sport_Vari= new Array(7);

Sport_Vari[0]="Calcio";
Sport_Vari[1]="Nuoto";
Sport_Vari[2]="Tennis";
Sport_Vari[3]="Ginnastica Artistica";
Sport_Vari[4]="Pattinaggio";
Sport_Vari[5]="Spinning";
Sport_Vari[6]="Lotta Libera";

Sport_Vari[7]="Baseball";
Sport_Vari[8]="Sci";

nonostante sia stato dichiarato "var Sport_Vari= New Array(7);" nella parte iniziale del codice.

Data la libertà nella dimensione degli Array in JavaScript, un Array può essere dichiarato anche nel seguente modo:

var MioArray=new Array();

Da notare che l'indice può essere sostituito da un'espressione. oppure da una variabile, oppure da una costante.

var k=8;

var MioArray=new Array(5 + k);

Metodi

La sintassi generale è: NomeArray.Metodo(eventuale argomento);

concat() var PrimoArray=new Array(1,2,3,4,5);
var SecondoArray=newArray(6,7,8,9,10);
var MiaVariabile=PrimoArray.concat(SecondoArray)

Questo metodo concatena 2 Array. Se la concatenazione viene assegnata ad un'altra variabile, essa diventa automaticamente un oggetto Array, con tutte le sue proprietà.
Nell'esempio scritto sopra, MiaVariabile diventa un Array di 10 elementi, dopo l'assegnazione, contenente gli elementi di PrimoArray e di SecondoArray.

join() Questo metodo restituisce una stringa al posto di un Array. La stringa conterrà tutti gli elementi dell'Array passato, considerati come stringhe indipendentemente dal tipo di variabili contenute nell'Array, e gli elementi nella stringa  risulteranno separati dall'argomento passato al metodo.
pop() Questo metodo elimina l'ultimo elemento  di un Array
push() Questo metodo aggiunge elementi alla fine di un Array.
Dato l'esempio dell'Array Sport_Vari, potremmo aggiungere come ultimi 2 elementi "Volley" o "Spinning" scrivendo il seguente codice:

Sport_Vari.push("Volley","Corsa Campestre");

reverse() Questo metodo inverte gli elementi in un Array. Preso l'esempio dell'Array precedente:

shift() Questo metodo elimina il primo elemento all'inizio di un Array
slice() Questo metodo restituisce una parte dell'Array.
La sintassi è: NomeArray.slice(inizio,fine). L'argomento fine può essere omesso, in quel caso automaticamente si intende l'ultimo elemento dell'Array.
Il primo elemento sarà indicato da zero.
sort() Questo metodo ordina, alfabeticamente o numericamente, gli elementi di un Array.
toString() Questo metodo converte in stringhe, separate da virgole, gli elementi dell'Array cui si applica.
unshift() Questo metodo aggiunge elementi all'inizio di un Array.
Dato l'esempio dell'Array Sport_Vari, potremmo aggiungere come primi 2 elementi "Volley" o "Spinning" scrivendo il seguente codice:

Sport_Vari.unshifth("Volley","Corsa Campestre");

valueOf() Questo metodo converte in stringhe, separate da virgole, gli elementi dell'Array cui si applica.
Proprietà
length Restituisce il numero degli elementi nell'Array.
prototype Permette di aggiungere metodi o proprietà alle istanze dell'oggetto Array.

Inizializzare un Array dinamicamente

Non è necessario che una variabile sia dichiarata immediatamente come Array. Infatti è possibile dichiarare una variabile e definirla come Array in seguito, all'interno di una funzione. Anche il numero di elementi nell'Array può essere parametrizzato.

 var arr=9; // dichiaro e inizializzo la variabile arr;
var _length; // dichiaro un'ulteriore variabile, che rappresenterà la lunghezza dell'Array
function inizializza() // dichiaro una funzione che mi restituirà un valore numerico
{
    return 5;
}
_length=inizializza(); // assegno a _length il valore restituito da inizializza
function prova_array()
{
     arr=new Array(_length); // utilizzo il costruttore new Array()
     for(i=0;i<_length;i++)
     {
         arr[i]=i;
         alert(arr[i]);
      }
}

Un ulteriore possibilità offerta da JavaScript è quella di utilizzare Array multidimensionali, rappresentabili come vere e proprie matrici caratterizzate da righe e colonne. Riprendendo perciò l'esempio all'inizio della pagina, volendo rappresentare in un unico Array lo sport praticato e chi lo pratica, si può dichiarare:

array Sport_Vari
  colonne
righe  
0 1
0 "Calcio" "pippo"
1 "Nuoto" "topolino"
2 "Tennis" "paperino"
3 "Ginnastica Artistica" "minnie"
4 "Pattinaggio" "paperina"
5 "Spinning" "clarabella"
6 "Lotta libera" "gamba di legno"

Per dichiarare un Array multidimensionale si può utilizzare la seguente modalità:

var arr1=new Array();

for (i=0;i<document.insert.list1.options.length;i++) {
    arr1[i]=new Array(2);
}

Per riempire l'Array:

arr1[0][0]="Calcio";
arr1[0][1]="pippo";
arr1[1][0="Nuoto";
arr1[1][1]="topolino";
...............................
arr1[5][0]="Lotta libera";
arr1[5][1]="gamba di legno";


Torna all'inizio | Home