PROGRAMMIAMO
JS - Array: definizioni
Variabili e array

In generale una variabile può essere paragonata a un contenitore nel quale è possibile memorizzare un singolo valore (numero, stringa di caratteri o altro). Per esempio in JS:

numero = 23;
parola = "pippo";

assegna alla variabile numero il valore numerico 23 e alla variabile parola la stringa di caratteri "pippo". E' importante sottolineare che una variabile può contenere solo un valore alla volta: ogni nuovo valore inserito cancella il precedente. Così ad esempio

a = 129;
a = 3.14
a = -2
window.alert("Il valore della variabile a è: " + a);

visualizzerà l'ultimo valore assegnato, cioè -1. Se si vogliono memorizzare più valori contemporaneamente, occorre dunque usare più variabili.

Vi sono tuttavia casi in cui si desidera effettivamente memorizzare più valori nello stesso "contenitore". In questi casi bisogna ricorrere agli array.

 

Array (o vettori): creazione

In generale un array (o in italiano vettore) non è altro che un insieme di variabili tutte con lo stesso nome. L'istruzione per creare un nuovo array in JS è:

var esempio = [] ;

In questo caso esempio è il nome del nuovo array (ovviamente il nome può essere scelto a piacere, con le stesse regole che valgono per la scelta dei nomi di variabili). Si noti l'uso della parola chiave var (la stessa usata per dichiarare le variabili) e le parentesi quadre aperte e chiuse (che indicano che si tratta di un array).

Come nel caso delle variabili, la parola chiave var può essere omessa, scrivendo anche semplicemente:

esempio = [] ;

In questo caso però, a differenza di quanto visto per le variabili, non è possibile omettere la dichiarazione di un array (cioè, prima di usare un array, bisogna crearlo esplicitamente).

Un modo alternativo (meno usato) per dichiarare un vettore fa uso dell'operatore new:

esempio = new Array();

In questo caso Array() è il costruttore della classe e new è l'operatore che consente di creare una nuova istanza della classe (cioè un nuovo vettore): dunque gli array (come quasi ogni altra cosa in JS!) sono degli oggetti.

 

Elementi e indice

Dopo che un vettore è stato creato, è possibile assegnargli dei valori. Ecco come si fa:

var numeri = [];
numeri[0] = 34;
numeri[1] = 12;
numeri[2] = 87;

In questo modo abbiamo memorizzato tre valori numerici (34, 12 e 87) nell'array di nome numeri. Si osservi la sintassi usata nelle assegnazioni:

Il vettore si compone di elementi. Ogni elemento equivale in pratica a una singola variabile, cioè può contenere un solo valore. Gli elementi del vettore sono numerati mediante un indice, cioè un valore numerico intero progressivo indicato fra parentesi quadre. L'indice del primo elemento del vettore vale sempre zero.

In pratica, se una variabile singola può essere paragonata a un singolo cassetto, un vettore è un mobile con molti cassetti (gli elementi), numerati in ordine da zero (il primo elemento) in avanti (0, 1, 2...).

Gli elementi di un vettore possono essere usati esattamente come le normali variabili, cioè su di essi possono essere eseguite operazioni, possono essere acquisiti e visualizzati. Si osservi a questo proposito l'esempio seguente:

var prova = [];
prova[0] = 10;
prova[1] = prova[0]*2;
prova[2] = 28-prova[1];
window.alert(prova[2]);

L'istruzione finale visualizzerà il valore 8 contenuto nell'elemento 2 del vettore prova.

 

Inizializzazione

Per assegnare i valori agli elementi di un vettore, oltre a scrivere una sequenza di istruzioni di assegnazione, come visto prima, è possibile usare anche questo metodo alternativo:

var vocali = ["A", "E", "I", "O", "U"]; //crea un array contente le vocali
var pari = [2,4,6,8]; //crea un array contente alcuni numeri pari

La sintassi è la seguente:

Un modo alternativo per creare e inizializzare un array è il seguente:

var vocali = new Array ("A", "E", "I", "O", "U"); //crea un array contente le vocali
var pari = new Array (2,4,6,8); //crea un array contente alcuni numeri pari

In questo caso viene fatto uso dell'operatore new e del costruttore con parametri.

 

Vettori non tipizzati

Esattamente come le variabili, anche gli array in JS non sono tipizzati. Ciò significa che in un array è possibile memorizzare qualsiasi tipo di valore, numerico, stringa o booleano. Di più: elementi diversi dello stesso vettore possono contenere valori di tipo differente, come nell'esempio che segue:

var vettore = [];
vettore[0] = "pippo";
vettore[1] = 23;
vettore[2] = -78.09;
vettore[3] = true;

Il fatto che sia possibile mescolare valori di tipo differente nello stesso vettore, non significa che questo sia un buon stile di programmazione. Nella maggior parte dei casi un vettore rappresenta un gruppo di valori omogenei (es. una serie di temperature, un elenco di nomi, una sequenza di voti scolastici...) e dunque non ha senso inserire al suo interno valori di tipo diverso.

 

Sequenza dei valori inseriti

Negli esempi precedenti, l'inserimento dei valori all'interno di un vettore è sempre stato fatto in sequenza, partendo dal primo elemento (l'elemento zero) e andando avanti. Tuttavia in JS non è obbligatorio seguire quest'ordine. Gli elementi possono essere riempiti in un ordine qualsiasi ed è anche possibile riempire solo alcuni elementi del vettore, lasciando gli altri vuoti. Si consideri a tale proposito l'esempio seguente:

var anno_bisestile = [];
anno_bisestile[2000] = true;
anno_bisestile[2001] = false;
anno_bisestile[2002] = false;
anno_bisestile[2003] = false;
anno_bisestile[2004] = true;

In questo caso sono stati riempiti solo cinque elementi del vettore, a partire dall'elemento di numero 2000. Ciò non comporta uno spreco di spazio, dal momento che il JS memorizza solo i cinque elementi che sono stati usati, mentre gli elementi da 0 a 1999 restano undefined (in pratica è come se non esistessero).

 

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it