Uno dei più importanti costruttori utilizzati in MooTools è sicuramente Array. Esso fornisce metodi molto utili per effettuare iterazioni su array e collezioni di elementi e per compiere un qualsiasi tipo di operazione con gli elementi di questi ultimi (tra queste troviamo l'estensione, il concatenamento e molte altre). In questa lezione daremo uno sguardo ai principali metodi di iterazione offerti da questa classe.
Il metodo più diffuso per iterare su array o collezioni è sicuramente each. Esso permette di richiamare una funzione per ogni elemento del nostro array, al quale viene passato un riferimento all'elemento corrente e il suo indice:
// alert '0 = red', '1 = blue' e cosi via
['red', 'blue', 'green'].each(function(color, index) {
alert(index + " = " + color);
});
Possiamo utilizzare in aggiunta un secondo importantissimo parametro, bind, che indica l'oggetto che assumerà il ruolo di this all'interno del ciclo di iterazione.
Every è un metodo di "checking", il che significa che restituisce true solo se ogni elemento dell'array soddisfa la condizione presente nella funzione passata come parametro, altrimenti restituisce false. Anche in questo caso è possibile utilizzare un ulteriore parametro per il "binding":
var big = [10, 4, 25, 100].every(function(item, index){
return item > 20;
});
// big è false, dato che 10 e 4 sono minori di 20
Come indica la parola, il metodo filter "filtra" l'array e ne restituisce uno nuovo contenente gli elementi che hanno soddisfatto la condizione presente nella funzione passata come parametro. Anche con il metodo filterè possibile specificare un oggetto per il "binding".
var biggerThanTwenty = [10, 3, 25, 100].filter(function(item, index){
return item > 20;
});
// biggerThanTwenty è uguale a: [25, 100]
Il metodo map restituisce un nuovo array contenente come elementi il risultato della condizione specificata nella funzione di iterazione. Anche in questo caso è possibile effettuare il "binding":
// moltiplica ogni elemento per 2
var timesTwo = [1, 2, 3].map(function(item, index){
return item * 2;
});
// timesTwo è uguale a: [2, 4, 6];
Questo metodo fornisce una funzionalità simile a quella del metodo every, dato che efftua un "check" sulla quantità di elementi che rispondono correttamente alla condizione. Restituisce true se almeno uno degli elementi soddisfa la condizione specificata dalla funzione di iterazione:
// big è uguale a true dato che 25 è maggiore di 20
var big = [10, 4, 25, 100].some(function(item, index){
return item > 20;
});
In questa lezione abbiamo visto come utilizzare i metodi offerti dal costruttore Array per effettuare cicli di iterazione sugli elementi di un array o di una qualsiasi collezione. Ovviamente il prototype della classe Array offerto da MooTools offre molti altri metodi molto utili, come clean, associate, link ed extend, ma non basterebbe una sola lezione per esemplificarli tutti. Per maggior informazioni ecco il link alla documentazione che tratta la classe Array.
PhantomJS, headless browser per test con JavascriptIl tool ideale per realizzare, da terminale, operazioni in remoto su... |
Creare e leggere QR Code in JavaScriptApplicazioni 'QR Code enabled' per il Web e per il mobile,... |
Jquery UI Map: web-mapping con Google Maps e jQueryUn plugin di jQuery UI per intefacciare applicaizoni Web/mobile con... |
Scrollorama e Scrolldeck, slideshow d'effetto con jQueryPlugin jQuery per ottenere Slideshow con diversi effetti di scrolling |
jCanvas, un primo semplice graficoAlla scoperta della libreria jCanvas, per semplificare il disegno e... |
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |