Array, metodi e proprietà

Gli array (o vettori) sono un modo per conservare i dati con una struttura sequenziale. Creeremo quindi un solo contenitore – un array appunto – che racchiude una serie di valori in una sola variabile. Pensiamo ad esempio ad una serie di numeri:

4 12 9 7 44 3 84

Potremmo metterli in una stringa, ma come faremo a usarli singolarmente? Potremmo creare una lista di variabili contenente ciascuna un numero. Ma come faremo a togliere o aggiungere un numero all’elenco? Javascript, come quasi tutti i linguaggi moderni, ci permette di creare gli array:

Un array si crea come una normale variabile, indicando i valori che deve contenere separati da virgola, fra parentesi quadre [ ] . Per accedere ad uno dei suoi valori dobbiamo conoscere il suo indice, cioè la posizione che occupa all’interno dell’array, partendo da zero. Scrivendo listaValori[0]  accediamo appunto all’elemento numero zero, cioè il primo.

Proprietà

Ogni valore in Javascript, fatta eccezione per null  e undefined , possiede delle proprietà accessibili tramite la sintassi Valore.proprietà, come ad esempio listaValore.length , dove accediamo alla proprietà length  del valore listaValori . Come capirete questa proprietà restituisce la lunghezza del valore: nel nostro caso ci dice semplicemente quanti elementi sono contenuti nell’array listaValori .

Metodi

Sia le stringhe che gli array, così come gli oggetti (che vedremo in seguito), contengono anche un certo numero di metodi, che sono vere e proprie funzioni. Per esempio, ogni variabile di tipo stringa possiede il metodo toUpperCase()  che, quando chiamato, restituisce la versione di quella stringa in caratteri maiuscoli. Si può dire, generalmente, che ogni tipo di dato (numero, stringa, array, etc.) ha i suoi metodi e le sue proprietà e che quindi ogni volta che creiamo una variabile abbiamo automaticamente a disposizione quei metodi e quelle proprietà.

In questo esempio abbiamo creato un array vuoto, e abbiamo usato il metodo push()  per accodare un elemento nell’array e pop()  per toglierlo. Abbiamo poi chiamato il metodo join()  che, come il nome suggerisce, concatena gli elementi interponendovi una stringa a nostra scelta, nel nostro caso uno spazio bianco " " .

We <3 array

Abbiamo già visto i metodi push() e pop() che mettono e tolgono uno o più elementi dalla fine di un array. I metodi shift() e unshift() fanno la stessa operazione sugli elementi all’inizio di un array. Spesso possiamo voler cercare all’interno di un array. indexOf(x) cerca nell’array l’elemento con il valore x e restituisce la posizione del primo elemento trovato. lastIndexOf(x) fa la stessa operazione ma restituisce l’ultimo elemento trovato

Altre funzioni fondamentali è slice(x,y) : è utile per tagliare una fetta dell’array restituendo un nuovo array a partire dall’elemento con indice x  fino all’elemento con indice y :

Ricordiamoci che alcune di questi metodi funzionano sulle stringhe come su gli array. Semplicemente una stringa viene trattata come un array in cui ogni carattere è un elemento:

L’oggetto arguments

Quando viene chiamata una qualsiasi funzione, una variabile speciale creata automaticamente dal sistema chiamata arguments  viene resa disponibile per l’uso. Questa variabile in realtà assomiglia ad un array che conserva tutti gli argomenti passati alla funzione. Sembra un array.. ma non lo è completamente, visto che non possiamo usare funzioni come indexOf()  o slice() :

L’oggetto Math

L’abbiamo già usato in precedenza, ma ci sentiamo di dedicargli qualche riga perché ci tornerà estremamente utile quando scriveremo dei veri programmi. Math  mette a disposizione alcuni metodi molto utili come Math.max  (il massimo fra gli argomenti), Math.min  (il minimo), Math.sqrt  che effettua la radice quadrata, Math.cos  (coseno), Math.sin  (seno) e via dicendo.

In questo esempio abbiamo anche usato Math.random()  che genera un numero compreso fra 0 e 1.

Ultimo, ma fondamentale metodo è Math.floor()  che restituisce la parte intera (arrotondata per difetto) di un numero. Se la volessimo arrotondata per eccesso nessun problema, c’è Math.ceil() !

L’operatore in

Dopo aver capito che metodi e proprietà sono una parte essenziale degli oggetti e degli array, passiamo velocemente ad approfondire l’uso dell’operatore in . Questo operatore in breve vi permette di capire un oggetto possiede quella tale proprietà o metodo. Nel caso di un array vi serve per sapere se nell’array esiste il tale elemento alla posizione x. Per questo motivo, restituisce true  o false :