JavaScript non ha gli array associativi

English version

Questo post riguarda uno dei più comuni equivoci di JavaScript: gli array associativi.

JavaScript supporta la sintassi degli array associativi, ma non ha realmente questa struttura dati. Sarebbe inutile, perché possiamo usare gli oggetti.

Ecco un semplice oggetto:

var movie = {
    title : '2001: A space Odissey',
    director : 'Stanley Kubrick',
    year : 1968
};

Abbiamo definito una variabile oggetto (movie) con 3 proprietà (title, director, year). Siccome le proprietà sono sempre pubbliche in JavaScript, possiamo leggerle:

alert('Title: ' + movie.title);

Inoltre JavaScript è molto dinamico, perciò possiamo anche modificare le proprietà o crearne di nuove:

movie.genre = 'sf';

Possiamo poi utilizzare la sintassi classica degli array associativi per accedere alle proprietà di un oggetto:

alert('Title: ' + movie['title']);

Può sembrare inutile… e in questo esempio lo è davvero. E’ meglio non usare questa sintassi se non è necessario. Ma possiamo utilizzarla per accedere ad una proprietà che non conosciamo a priori:

var prop = 'title';
alert('Title: ' + movie[prop]);

E’ particolarmente utile nei cicli for … in, che sono l’equivalente JavaScript dei foreach:

for (var i in movie) {
    alert(i + ': ' + movie[i]);
}

Divertitevi!

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...