Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    ordinare un array tramite sort()

    Salve ho fatto una ricerca prima di aprire il post, però nel mio caso non capisco come funziona il sort().

    Praticamente io ho un array aux[] di lunghezza 4, tramite un ciclo for lo scorro tutto in verticale e mi faccio stampare in una tabella i risultati.

    quindi ho aux[0] aux[1] aux[2] aux[3], cliccando sulla prima colonna devo ordinare l'array su aux[0] lasciando la riga inalterata.
    Poi dovrei eseguirlo anche sulle altre, ma mi basta capire come fare sulla prima.

    Questa è la funzione sort che ho trovato:

    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;
    }

    Non capisco come implementarla nel mio caso.
    Grazie
    Sugnu Sicilianu e mi ni vantu, picchì la terra mia è china china d'incantu...u suli e li salini, pisci n'do sbarcaturi, su tutti cosi ca mi fannu strinciri lu cori...

  2. #2
    Nessuno sa come fare??
    Sugnu Sicilianu e mi ni vantu, picchì la terra mia è china china d'incantu...u suli e li salini, pisci n'do sbarcaturi, su tutti cosi ca mi fannu strinciri lu cori...

  3. #3
    up
    Sugnu Sicilianu e mi ni vantu, picchì la terra mia è china china d'incantu...u suli e li salini, pisci n'do sbarcaturi, su tutti cosi ca mi fannu strinciri lu cori...

  4. #4
    Ho provato così:

    codice:
    function cre(a)
        {
            if(a[0].toLowerCase() > a[1].toLowerCase()) return 1;
            if(a[0].toLowerCase() < a[1].toLowerCase()) return -1;
            return 0;
        }
    ma scambia solo le posizioni tra i primi due valori della stessa riga, io vorrei scambiarli con quelli della riga di sotto!!

    Sapete aiutarmi...please
    Sugnu Sicilianu e mi ni vantu, picchì la terra mia è china china d'incantu...u suli e li salini, pisci n'do sbarcaturi, su tutti cosi ca mi fannu strinciri lu cori...

  5. #5
    guarda che secondo me hai un po' di confusione

    anche in riferimento all'altro 3d

    http://forum.html.it/forum/showthrea...readid=1217674

    tu stai cercando di ordinare l'array aux

    ma aux rappresenta solo una riga della della tua tabella!!!!

    tu devi ordinare l'array delle righe invece.

    Cioe' devi prima riuscire ad avere una array tipo questo

    tabella = new Array();

    tabella[0] = new Array('francesco', 'gdteh', '2352', 'si');
    tabella[1] = new Array( 'claudio', 'dhgeb', '3021', 'si');
    tabella[2] = new Array( 'sofio', 'atshe', '2112', 'no');
    tabella[3] = new Array( 'stefano', 'tehd', '8983', 'si');
    tabella[4] = new Array( 'marco', 'tgdf', '6523', 'no');

    poi devi trovare un modo per ordinare la variabile "tabella"

    tabella.sort();

    ovvio che poi devi trovare un modo per fare la funzione che da la distanza tra due elementi della tabella. Cioe' la funzione da mettere dento sort(...)

  6. #6
    si, giustissimo ma come faccio a divedere l'aux???
    Sugnu Sicilianu e mi ni vantu, picchì la terra mia è china china d'incantu...u suli e li salini, pisci n'do sbarcaturi, su tutti cosi ca mi fannu strinciri lu cori...

  7. #7
    aux e' gia' diviso, e' l'array che ottieni dallo split

  8. #8
    si ma se stampo aux[] ottengo:

    francesco,gdteh,2352,siclaudio,dhgeb,3021,sisofio, atshe,2112,nostefano,tehd,8983,simarco,tgdf,6523, no

    come faccio ad inserirli in un array a 4 a 4??

    questo è il mio problema
    Sugnu Sicilianu e mi ni vantu, picchì la terra mia è china china d'incantu...u suli e li salini, pisci n'do sbarcaturi, su tutti cosi ca mi fannu strinciri lu cori...

  9. #9
    C'e' bisogno di fare un po' do ordine

    Io farei cosi'

    per prima cosa creo una funzione che prende le stringhe divise da : e crea un array 5x4 (5 righe e 4 colonne)

    secondo me il tuo oggetto deve avere un array chiamato tabella che contiene questi dati

    e' semplice: fai un ciclo for e ad ogni iterazione crei una riga che contiene il risultato della funzione split()
    codice:
    var colonna = 0 // questa e' la colonna su cui ordinerai
    tabella = new Array();
    for (var i = 0; i< this.array.length; i++)
    {
        tabella[i] = this.array[i].split(":"); 
        tabella[i].toString = function(){return this[colonna]}; //questo serve per ordinare, vedrai in seguito
    
    }
    ora hai il tuo array che rappresenta la tabella. E' un array bidimensionale

    usalo per costruire la tabella vera e propria HTML. Cioe' dimenticati di this.array e di aux (ma poi come ti e' venuto in mente di chiamare una variabile col nome array??? Mai usare nomi riservati!!!!)

    inoltre questa tabella e' facile da ordinare

    basta impostare la colonna sulla quale ordinare ad es:

    codice:
    colonna = 2;
    tabella.sort();
    tabella.reverse(); //questo solo nel caso di ordinamento inverso
    E la tabella verra' ordinata in base alla terza colonna (la prima e' la colonna 0 ovviamente)

    E' tutto un po' improvvisato ma dovrebbe andare. Almeno su FF, non ho sottomano un IE per provare in fretta

    PS

    io le funzioni le ho create fuori da un oggetto, spetta a te definirle come si deve definirle come si deve dentro il tuo oggetto

  10. #10
    usalo per costruire la tabella vera e propria HTML. Cioe' dimenticati di this.array e di aux
    Non ho capito come e sopratutto dove?!!
    Sugnu Sicilianu e mi ni vantu, picchì la terra mia è china china d'incantu...u suli e li salini, pisci n'do sbarcaturi, su tutti cosi ca mi fannu strinciri lu cori...

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.