JS.Class: portiamo in Javascript i vantaggi di Ruby

di: Alberto Bottarini     25 Agosto 2008

JS.Set

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

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.

Guide JavaScript

Guida Node.js

Il framework che permette di per usare V8, l'interprete JavaScript...

Canvas, guida ai framework

Canvas, tra gli elementi di HTML5 è forse quello di maggior impatto....

Guida jQuery UI

Creare siti ricchi e dinamici con jQuery UI, il progetto ufficiale...

Altre guide

Newsletter @JavaScript

Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso JQuery e Ajax per Webmaster

03 Luglio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti