Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Ordinamento Array di Oggetti

    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!

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    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

  3. #3
    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!

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    dammi un attimo perchè in IE funziona, in Firefox no :master:
    Pietro

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    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

  6. #6
    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!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.