Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: Ordinare array

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    200

    Ordinare array

    Salve sto cercando di ordinare un'array con valori numerici in ordine decrescente, ed ho trovato questo codice

    codice:
     arr.sort(function(a,b){return b-a})
    il problema ora è che la funzione sort() modifica le chiavi originali (che a me serve conservare).
    Qualcuno mi saprebbe aiutare?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Qualche riga di codice in piu' potrebbe farci capire di quali chiavi stai parlando...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    200
    questa è la mia situazione

    codice:
     var arr = new Array();
    
    arr["d12"]=1;
    arr["d3"]=5;
    arr["d0"]=3;
    arr["d6"]=7;

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Fare il sort di un array simile e' un controsenso: poi in quale ordine (di chiave) li interroghi? il sort dovrebbe rimescolare i valori scambiando le chiavi? o assegnare il valore piu' basso alla chiave alfabeticamente piu' bassa? cioo', come dovrebbe fare a stabilire quale chiave precede e quale segue?

    Infine, in soldoni, come vorresti che l'array venisse ordinato ( il risultato atteso )?
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    200
    dovrebbe mettermi i valori in ordine crescente senza modificare le chiavi
    codice:
    arr["d12"]=1;
    arr["d0"]=3;
    arr["d3"]=5;
    arr["d6"]=7;

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da foffo7
    dovrebbe mettermi i valori in ordine crescente senza modificare le chiavi
    codice:
    arr["d12"]=1;
    arr["d0"]=3;
    arr["d3"]=5;
    arr["d6"]=7;
    Ah, ok, non credo che sia possibile, dovrai escogitare un tuo algoritmo ( es: metti i valori in un array "normale", ordinalo, ritrasferisci i valori )
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669

    Re: Ordinare array

    Originariamente inviato da foffo7
    il problema ora è che la funzione sort() modifica le chiavi originali (che a me serve conservare).
    Qualcuno mi saprebbe aiutare?
    Se vuoi preservare l'array originale disordinato e creare un nuovo array ordinato devi fare così:

    codice:
    var nuovoArr = arr.slice(0);
    nuovoArr.sort(function(a,b){return b-a});
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    200
    Ma facendo così perdo le chiavi originali

  9. #9
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    L'array originale (di nome "arr") NON VERRÀ TOCCATO. La funzione sort agisce su un nuovo array di nome "nuovoArray". Alla fine ti troverai con due array: "arr" (originale disordinato) e "nuovoArr" (nuovo array ordinato). I nomi li puoi scegliere a piacere ovviamente.
    Tutto ciò che fai con jQuery puoi farlo meglio e con la metà del codice in puro JavaScript.

  10. #10
    Ma solo per me quello che foffo7 sta cercando di fare non ha senso?

    Lui crea un array, e poi setta delle proprieta' dell'oggetto array. Che significa che iterando l'array non si ottiene nulla, in quanto le proprieta' numeriche sono assenti e length e' 0.
    Nello stesso modo, sort non fa assolutamente nulla, in quanto di fatto l'array e' vuoto.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

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 © 2025 vBulletin Solutions, Inc. All rights reserved.