di: Alberto Bottarini 25 Agosto 2008
Questo componente, così come il prossimo, rientrano non in maniera diretta in quegli aspetti del framework che permettono di emulare Ruby con Javascript, ma possono comunque essere utili e funzionali.
JS.Set permette di realizzare vettori di oggetti che non possono presentare al loro interno oggetti tra di loro uguali.Questa componente presenta al suo interno anche una specializzazione di JS.Set: JS.SortedSet che presenta le stesse API ma che ha un motore interno di gestione dei dati ottimizzato per quelle liste di oggetti che necessitano un ordine ben preciso.
I metodi esposti da questo oggetto sono:
add(item): aggiunge un valore alla lista solo se non è gia presente. Ritorna un booleano che indica se l'oggetto è stato effettivamente inserito o no;var set = new JS.Set(); set.add(1); //ritorna true set.add(2); //ritorna true set.add(1); //ritorna false
classify(func, scope): suddivide la collezione in sotto-collezioni più piccole sulla base del valore ritornato dalla funzione passata come parametro;
var set = new Js.Set([1,2,3,4,5,6,7,8,9,0]);
var subsets = set.classify(function(i) {
return i%2 == 0;
});
/*subset sarà cosi composto
subset[0] = [2,4,6,8,0]
subset[1] = [1,3,5,7,9]*/
clear(): rimuove tutti i valori inseriti precendentemente nella lista;complement(array): ritorna un nuovo set composto dai valori di array che non sono presenti nel set;contains(item): ritorna un booleano che indica se item è presente nel set;difference(array): ritorna un nuovo set composto dai valori del set che non sono in array;divide(func, scope): simile a classify, ma ritorna un set contenente altri set;equals(set): ritorna un boolean se i due set contengono gli stessi elementi;flatten(): sposta gli elementi di più set in un unico grande set;var set1 = new JS.Set([1,2,3]); var set2 = new JS.Set([2,3,4]); var s = new JS.Set([set1, set2]); var flat = s.flatten(); //ritorna un set contenente 1,2,3,4
intersection(set): ritorna un set contenente i valori comuni ai due set;isEmpty(): ritorna true se il set è vuoto;
isProperSubset(set) / isSubset(set): ritorna true se il set sul quale è stato invocato il metodo è un sottoinsieme del set passato come parametro;
isProperSuperset(set) / isSuperset(set): ritorna true se il set passato come parametro è un sotto insieme del set sul quale è stato invocato il metodo;
merge(set): unisce i due set in un unico;
product(set): ritorna un nuovo set contenente tutte le possibili coppie di valori;
rebuilt(): effettua un controllo di integrità sui valori inseriti e nel caso di un JS.SortedSet riordina i valori inseriti;
remove(item): rimuove item dal set;
removeIf(func, scope): esegue la funzione per ciascun item del set e elimina quelli che ricevono true come valore di ritorno della funzione;
replace(array): sostituisce i valori precedenti con quelli passati come parametro;
subtract(array): simile a difference ma in questo caso modifica il set stesso;
union(set): ritorna un nuovo set che contiene tutti gli elementi;
xor(array): ritorna un nuovo set contenente i vettori che ritornano true alla funzione logica xor (i valori presenti solo in una sola lista ma non in entrambe).
JS.Packages è una classe di utilità che si occupa di caricare a runtime nuovi script on-demand con il supporto ulteriore per eventuali dipendenze da altre librerie.
Una volta definita la struttura di eventuali librerie esterne e delle loro dipendenze (rimando alla documentazione ufficiale per un esempio pratico: http://jsclass.jcoglan.com/packages.html) basta invocare il metodo require per delegare al framework lo scaricamento del file e delle sue dipendenze.
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 jQuery UICreare siti ricchi e dinamici con jQuery UI, il progetto ufficiale... |
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 |