javascript by example
javascript by example
javascript by example
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Capitolo 1<br />
Linguaggio<br />
Questo succede perché l'ordinamento avviene con il confronto del<br />
valore numerico dei caratteri (il carattere “A” per esempio equivale<br />
a 65, mentre “a” è 97). A questo si può porre rimedio con una funzione<br />
di sorting personalizzata da associare al prototipo Array:<br />
Array.prototype.sortInsensitive = function (){<br />
this.sort (function (elm1,elm2){<br />
var v1 = elm1.toString().toLowerCase();<br />
var v2 = elm2.toString().toLowerCase();<br />
}<br />
});<br />
if(v1==v2) return 0;<br />
else return (v1>v2) ? 1:-1;<br />
che richiama il sort standard applicandogli però una funzione di<br />
callback che verrà richiamata in fase di comparazione tra i due<br />
elementi operando un confronto case-insensitive.<br />
28 Ordinare un Array con più opzioni<br />
Sempre agendo sul prototipo di Array è possibile dotare quest'ultimo<br />
di una funzione di sorting un po' più completa che<br />
consenta di specificare la modalità (case sensitive o case insensitive)<br />
e la direzione (ascendente o discendente):<br />
Array.prototype.sortFull = function (insensitive,desc){<br />
}<br />
var isInsensitive = insensitive || true; //default true<br />
var isDesc = desc || false; //default false<br />
if(isInsensitive) this.sortInsensitive();<br />
else this.sort();<br />
if (isDesc) this.reverse();<br />
I libri di ioPROGRAMMO/Javascript <strong>by</strong> Example 35<br />
JAVASCRIPT<br />
BY EXAMPLE