:master: vediamo se riesco.
Ho un vettore:
var v = ["Stefano", "Carlo", "Nicola", "stefano", "carlo", "nicola"];
Se, per ordinarlo, uso:
v.sort();
questo sarà ordinato in "dictionary order", dove le maiuscole vengono prime delle minuscole.
Carlo, Nicola, Stefano, carlo, nicola, stefano
Se voglio ordinarlo in modo indipendente da maiuscole-minuscole, debbo utilizzare la versione:
v.sort(compareFunction);
dove compareFunction(a, b) è una funzione che confronta due elementi del vettore e restituisce:
0 se a == b
numero < 0 se a < b
numero > 0 se a > b
allora, userò sort pressapoco così:
v.sort(function(a,b){return (a.toLowerCase( ) < b.toLowerCase( ))?-1:1});
se il vettore contenesse numeri userei:
v.sort(function(a,b){return (a-b)});
Ritornando a noi, una qualunque stringa alfanumerica (solo cifre e lettere alfabeto) può essere vista come un numero a base 36.
un numero binaro ha due simboli: 0, 1
un numero ottale ha 8 simboli: 0,1,2,3,4,5,6,7
un numero decimale ha 10 simboli: 0,1,2,3,4,5,6,7,8,9
un numero esadecimale (base 16) ha 16 simboli: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
un numero a base 36 ha 36 simboli:
0123456709ABCDEFGHIJKLMNOPQRSTUVWXYZ
ed ecco che la funzione di ordinamento può essere:
v.sort(function(a,b){return (parseInt(a,36)-parseInt(b,36))});
il link che ti ho dato lo spiega meglio
![]()
![]()

il link che ti ho dato lo spiega meglio
Rispondi quotando