Vorrei postare un paio di frammenti di codice che ho in giro qui da un po’. Forse gli intenditori sbadiglieranno, ma ci sono un sacco di persone che sono alla ricerca di queste minuzie. Mi sbarazzo di questi appunti che ho scritto ultimamente e lo pubblico qui per reperirlo con un click.
Vedrete frammenti che aiutano a:
- rilevare se una variabile è un array reale con
isArray
; - convertire in un array vero e proprio con
arguments to Array
; - imitare x = [3 .. 25] genere di cose che offrono altri linguaggi con
[x..y]
; - spaziare la lunghezza una stringa con caratteri predefiniti con
padding
; - creare una funzione unique per gli array con
array.unique()
.
⤽
isArray()
⤽
Ci sono un sacco di modi per verificare la presenza di una variabile di tipo array, ma la più sicura e anche più promossa è
Alcuni esempi che demostrano bene nella console come usarli e come funziona davvero.
Conversione di argomenti per un arrayObject.prototype.toString.call(arg) == '[object Array]';
arr = 1 // Questo è un intero, naturalmente. Object.prototype.toString.call(arr) == '[object Array]'; false arr = '1' // Solo una stringa. Object.prototype.toString.call(arr) == '[object Array]'; false arr = '[1,2,3]' // Anche qui una stringa. Object.prototype.toString.call(arr) == '[object Array]'; false arr = {x:1, y:2} // Questo è un oggetto e non un array Object.prototype.toString.call(arr) == '[object Array]'; false arr = [1,2,3] // Un array e quindi dovrebbe essere vero. Object.prototype.toString.call(arr) == '[object Array]'; true
⤽
Uno dei disaggi che gli sviluppatori in JavaScript devono affrontare e che si spera sia risolto con le versioni future (per fortuna) è che l’argomento object si presenta come un array e ha la proprietà length, ma non si può lavorare con essa come se fosse un array, ad esempio qui:
Ma la loro è una soluzione fino a quando il linguaggio che lo gestisce. è
Funzione intervallofunction f() { console.log(arguments.length); } f(1,2,3); //ritorna 3, arguments.length lavora function f() { console.log(arguments.slice()); } f(1,2); // ritorna TypeError: arguments.slice non è una funzione // slice() non è disponibile
function f() { var realArray = [].slice.call(arguments, 0); console.log(realArray.slice()); } f(1,2,3); // ritorna [1, 2, 3] // slice non lancia nessun errore
⤽
A volte si necessita di un array piatto con una serie di numeri di una certa fascia, per esempio quella di un insieme di caratteri, con tutti i caratteri maiuscoli. Ma non existe ancora in JavaScript “
Ma se si tratta di qualunque insieme di numeri possiamo ottenerlo con una piccola modifica per trattare l’argomento passato alla funzione.
Quindi per avere qualcosa di simile a “
Riempimento di una stringax = [1 .. 5]
”. Ma avevo bisogno di uno, ed è facile fare uno, come si può vedere:var chars = []; for (var i = 65; chars.push(i) && i < 90; i++){}; // creo un array con questi elementi // [65, 66, 67, ... 88, 89, 90] // per verificarlo nella console chars.forEach(function(c){ console.log(String.fromCharCode(c)) }); // si ottiene A B C ... X Y Z
function insieme(input) { var parti = input.split('..'), inizio = +parts[0], finale = +parts[1], counter = inizio, output = []; for (; output.push(counter) && counter < finale; counter++); return output; } insieme('9..55'); // [9, 10, 11, 12, 13, 14, 15]
x = [1 .. 5]
” si può usare “x = insieme('1..5');
”⤽
A volte si desidera un numero con dei zeri a sinistra. Ecco come viene fatto:
Il -3 è la posizione a ritroso della stringa di caratteri. Si aggiungono due zeri all’inizio, perché siamo sicuri che un numero non è mai una stringa vuota. E dopo la concatenazione di stringhe si prendono solo gli ultimi tre caratteri. Semplice e funziona bene senza alcun tipo di if o di una logica complessa.
array.unique()('00' + 3).slice(-3) // "003" ('00' + 42).slice(-3) // "042" ('00' + 103).slice(-3) // "103"
⤽
PHP ha un sacco di funzioni infernali per gli array, anche se un po selvatiche. Una funzione come
Divertiti, e spero che utile.
unique()
di PHP è una di quelle a volte mancano in Javascript.Ecco una semplice:function unique(arrayData){ return arrayData.filter(function(val, idx, arr){ return arr.slice(0, idx).indexOf(val)==-1; }); } unique([1,2,3,4,1,2,1,3]) // ritorna [1, 2, 3, 4] unique([1,2,3,4,1,2,1,3,5]) // ritorna [1, 2, 3, 4, 5] unique(['a', 'a', 'b', 'B']) // ritorna ["a", "b", "B"]
Similari
⋮ Fondamentali di jQuery ⋮
JQuery ⊚
jQuery stà diventando rapidamente uno strumento che ogni sviluppatore web di interfacce dovrebbe conoscere. Lo scopo di questo libro è di fornire una panoramica della biblioteca, in modo che qu…
⋮ Python per tutti ⋮
Python ⊚
Python para todos è un libro sulla programmazione in Python. Questo è un tutoriale su Python adatto a tutti i livelli e si può scaricare in pdf gratuitamente in spagnolo. Il tutoriale di Python…
⋮ Modello di spazi dei nomi in JavaScript ⋮
JScript ⊚
In questo post, si discuteranno dei modelli intermedi, avanzati e gli approcci per il namespacing in JavaScript. Si comincia con l’ultimo come credo che molti dei lettori abbia qualche precedente esperienza in questo setto…
⋮ Funzioni popolari per gestire le stringhe ⋮
Php ⊚
PHP ha una vasta scelta di funzioni integrate per la gestione delle stringhe che permettono di manipolarle facilmente in quasi ogni modo possibile. Tuttavia, imparare tutte queste funzioni, ricordando quello che fanno e qu…
⋮ Guida allo Zend Framework ⋮
Zend ⊚
Zend Framework è un framework open source per PHP. Zend Framework separa la logica e le azioni usando il pattern MVC (Model View Controller). Cosa è lo Zend Framework? Framework per la costruzione di siti web più veloci e …

JQuery ⊚
jQuery stà diventando rapidamente uno strumento che ogni sviluppatore web di interfacce dovrebbe conoscere. Lo scopo di questo libro è di fornire una panoramica della biblioteca, in modo che qu…
Python ⊚
Python para todos è un libro sulla programmazione in Python. Questo è un tutoriale su Python adatto a tutti i livelli e si può scaricare in pdf gratuitamente in spagnolo. Il tutoriale di Python…
JScript ⊚
In questo post, si discuteranno dei modelli intermedi, avanzati e gli approcci per il namespacing in JavaScript. Si comincia con l’ultimo come credo che molti dei lettori abbia qualche precedente esperienza in questo setto…
Php ⊚
PHP ha una vasta scelta di funzioni integrate per la gestione delle stringhe che permettono di manipolarle facilmente in quasi ogni modo possibile. Tuttavia, imparare tutte queste funzioni, ricordando quello che fanno e qu…

Zend ⊚
Zend Framework è un framework open source per PHP. Zend Framework separa la logica e le azioni usando il pattern MVC (Model View Controller). Cosa è lo Zend Framework? Framework per la costruzione di siti web più veloci e …
Aggiungi un commento