Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    Ordinamento in base a valore numerico

    Ciao a tutti.

    Sto cercando di imparare a programmare in javascript; ma una cosa che non riesco a capire sul manuale che sto consultando, è questo:

    l'ordinamento delle opzioni avviene tramite valore numerico in base 36

    Cos'è un numero in base 36 ?

    Lo script di esempio è il seguente:

    codice:
    function test(x, y)
    {
      return(parseInt(x.value, 36) - parseInt(y.value, 36));
    }
    Sapreste aiutarmi?
    Grazie

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Da una riga di codice non si riesce a capire il contesto...

    Spiega cosa vuoi ottenere e posta tutto il codice interessato al richiamo di quella funzione.

    ciao
    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 L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Credo che si riferisca all'ordinamento di un vettore in ordine alfabetico senza tenere conto di maiuscole-minuscole :master:


    Pietro

  4. #4
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da pietro09
    Credo che si riferisca all'ordinamento di un vettore in ordine alfabetico senza tenere conto di maiuscole-minuscole :master:


    Esattamente questo... dove trovi maggiori info?

    Per il codice lo trovi qui

    Grazie.

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    http://developer.mozilla.org/en/docs...cts:Array:sort
    :quote: con un po' di pazienza lì trovi la soluzione
    Pietro

  6. #6
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Grazie; ma avevo curiosità di sapere di più su questa tecnica dell'ordinamento delle opzioni tramite valore numerico in base 36.

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da ubbicom
    Grazie; ma avevo curiosità di sapere di più su questa tecnica dell'ordinamento delle opzioni tramite valore numerico in base 36.
    che ci vuoi fare? sapere una cosa è un fatto; saperlo spiegare bene è un'altra faccenda
    Pietro

  8. #8
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da pietro09
    che ci vuoi fare? sapere una cosa è un fatto; saperlo spiegare bene è un'altra faccenda
    A rispondere mi hai già fatto un grande favore.
    Grazie

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

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.