Ciao a tutti.
Ho un array di oggetti.
arr[0] = obj
arr[1] = obj
...
arr[0].id = id_numerico
arr[0].key = chiave_di_testo
Ho la necessità di ordinare questo array in base alla chiave "key"...
Come posso fare?
Grazie a tutti!
Ciao a tutti.
Ho un array di oggetti.
arr[0] = obj
arr[1] = obj
...
arr[0].id = id_numerico
arr[0].key = chiave_di_testo
Ho la necessità di ordinare questo array in base alla chiave "key"...
Come posso fare?
Grazie a tutti!
By Pegoraro Marco
http://adessoweb.biz- AdessoWEB - Siti web professionali a prezzo accessibile!
http://consulenza-web.com- Il mio blog!
codice:var a = [{id:2, key:'b'}, {id:1, key:'c'}, {id:3, key:'a'}]; var i; alert("non ordinato") for(i = 0; i <a.length; i++) alert(a[i].id + ", " + a[i].key); a.sort(function(a, b){return a.key > b.key}); alert("ordinato secondo key") for(i = 0; i <a.length; i++) alert(a[i].id + ", " + a[i].key);
Pietro
Ok, così esegue un ordinamento... però ogni volta che lancio la funzione risulta un ordinamento differente!
Presumo che questa soluzione vada bene per un ordinamento numerico... io devo gestire un ordinamento alfabetico crescente in base a stringhe di testo!
By Pegoraro Marco
http://adessoweb.biz- AdessoWEB - Siti web professionali a prezzo accessibile!
http://consulenza-web.com- Il mio blog!
dammi un attimo perchè in IE funziona, in Firefox no :master:
Pietro
codice:var a = [{id:2, key:'b'}, {id:1, key:'c'}, {id:3, key:'a'}]; function Button1_onclick() { var i; a.sort(function(a, b){return (a.key >= b.key)?1:-1}); for(i = 0; i <a.length; i++) alert(i + ": " + a[i].id + ", " + a[i].key); }
Pietro
Ho trovato la soluzione....
// Funzioni...
array.sort(mySort);
function mySort (a,b){
if(a.key.toLowerCase() > b.key.toLowerCase()) return 1;
if(a.key.toLowerCase() < b.key.toLowerCase()) return -1;
return 0;
}
In questo modo mi fa l'ordine rispetto ad una proprietà interna...
grazie a tutti comunque!
By Pegoraro Marco
http://adessoweb.biz- AdessoWEB - Siti web professionali a prezzo accessibile!
http://consulenza-web.com- Il mio blog!