Array Remove di John Resig
Mercoledì 12 Dicembre 2007 - 11:10
di Riccardo Degni

Dopo l’articolo sul method overloading, John Resig ci offre un’altra soluzione basata sull’estensione dei metodi nativi di Javascript, più precisamente sul costruttore Array.
Il metodo in questione si chiama remove, e permette di rimuovere un elemento da un array oppure un gruppo preciso di elementi, ricavato dall’intervallo specificato.
Il metodo remove accetta due parametri: from e to. Il primo è obbligatorio e indica, se to non è specificato, l’elemento da rimuovere dall’array, oppure l’indice dal quale bisogna partire per eliminare un intervallo di elementi. Il secondo indica l’indice finale del precedente intervallo.
Un’altra ottima caratteristica è la possibilità di specificare valori negativi per partire dalla fine dell’array. Vediamo qualche esempio:
var num = [0, 1, 2, 3, 4, 5, 6, 7, 8]; // num diventa [5, 6, 7, 8] num.remove(0, 4); // num diventa [0, 1, 2, 3, 5, 6, 7, 8] num.remove(4); // num diventa [0, 1, 2, 3, 4, 6, 7, 8] num.remove(-4); // num diventa [0, 1, 2, 3, 4, 8] num.remove(-4, -2);
Davvero un’ottima soluzione, pratica e molto compatta. L’autore presenta inoltre la possibilità di adattare il metodo in forma generica al costruttore Array, questa volta però, specificando come primo argomento l’array interessato.
Categoria: Scripting | Permalink
Commenti
1
Non capisco: non era sufficiente il metodo splice?
# - postato da Giavanna - 12 Dicembre 2007 - 12:13
2
ma sistemare la ricerca del blog che e’ una vita che non va no e’?
# - postato da simone - 12 Dicembre 2007 - 20:42
3
Bhe dopo aver finito Algoritmica mi pare quasi che stiate urlando al vento la scoperta dell’acqua calda!
Una delle poche materie che fino a ora reputo interessanti della facolta di informatica ^^
# - postato da StErMi - 12 Dicembre 2007 - 21:31
4
simone, purtroppo non tutte le cose si possono fare con la bacchetta magica, ci vuole tempo e pazienza ogni tanto
5
StErMi in parte concordo ma considera che lo scopo principale di un framework JS è solitamente quello di semplificare …e non ti dico in quanti nemmeno sanno dell’esistenza di splice, ecco perchè remove può risultare interessante per la massa, un pò meno per chi JS lo conosce oltre l’ABC :-)
6
A tutti quelli che hanno preso sottogamba questo script: forse non l’avete realizzato, ma l’autore è John Resig, e sicuramente non è il tipo da fare qualcosa “che era sufficiente con i metodi già presenti” o “l’acqua calda”…
Se provaste prima ad analizzare il codice capireste la vera utilità di questa funzione… e le differenze con quelle già disponibili…
# - postato da Filippo - 14 Dicembre 2007 - 10:58
7
Filippo, se avessi letto oltre al post anche i commenti avresti notato che ho già scritto una versione da 2 linee invece di 3 che riduce tempi e memoria … indovina tramite quale metodo? splice :-)
Come ho detto, il metodo non è rivoluzionario e sa quasi di acqua calda … soprattutto perchè in tanti già hanno scritto una proto analoga ma essendo abbastanza semplice nessuno gli ha dedicato un post.
John l’ha fatto e giustamente poichè di fatto ci sono tanti sviluppatori che non conoscono splice e che possono trovare in questo metodo un’utile opzione per determinate operazioni.
P.S. John è bravo ma non è che se l’ha fatto lui o l’ha scritto in quel modo va bene … non credo sia professionale dare per scontato che se un pezzo di codice è scritto da uno noto si da per scontato sia perfetto e/o che non si poteva vivere senza, opinione personale.







