IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

array sort sous explorer different sour ff


Sujet :

JavaScript

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut array sort sous explorer different sour ff
    bonjour,

    j'essaye de trier un tableau avec la méthode sort, j'y arrive parfaitement sous ff mais j'ai un comportement totalement hazardeux sous explorer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      if(statarray == null) {
            statarray = get_general_stat();
            table = document.getElementById('GeneralStatTableId')
            }
        statarray.sort(function mysort(a,b){
                                            if (type_of_sort == 1) {
                                                  return a[num_column] <   b[num_column];    
                                            }else{
                                                  return a[num_column] > b[num_column];     
                                            }
                                   }
                                );
    la fonction get_general_stat renvoi le tableau et ressemble a ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    function get_general_stat(){
    var stat = new Array(
    ['PR36808450','ADDR',1907,100,107,6,116,6,0,11,10,0,0]
    ,['PR71129','AMORTR',498,21,121,24,27,5,0,4,6,0,0]
    ,['PR26012651','APS00211',1022,80,98,10,82,8,0,5,9,0,0]
    ,['PR382754109','APS00227',1219,101,130,11,98,8,0,5,9,0,0]
    ,['PR489758529','CTRCR',2430,230,303,12,79,3,0,7,18,0,0]
    ,['PR20861673','CTRUC',2820,170,228,8,209,7,0,12,17,0,0]
    ,['PR203624801','DELORD',6454,430,549,9,419,6,0,11,93,0,0]
    ,['PR757148','FADDR',1266,42,18,1,5,0,0,4,50,69,57]
    ,['PR357502846','LET150',20784,3217,2982,14,1023,5,7,61,60,0,0]
    ,['PR258606341','LNOT1630',2759,126,404,15,291,11,0,3,0,21,73]
    ,['PR603629089','MENU',1649,102,210,13,91,6,0,8,14,0,0]
    ,['PR547857437','RV',2847,154,229,8,170,6,0,11,10,0,0]
    ,['PR701650191','STCT01',3017,235,295,10,235,8,0,11,45,0,0]
    ,['PR560017076','XDVEHMD',300,27,131,44,3,1,0,5,4,0,0]
    ,['PR148481306','XLVEHSTA',220,20,13,6,33,15,0,3,2,0,0]
    ,['PR11146267','XMCUS',578,76,94,16,37,6,0,3,2,0,0]
    );
    return stat;
    }
    le but etant de trier le tableau sur un numero de colonne,
    par exemple trier le tableau sur les nom (la seconde colonne).
    mais je sais pas pourquo, cela ne fonctionne pas bien du tout sous explorer que cela soit avec les nombre ou avec les nom.

    merci

    a++

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    bonjour,

    où et comment est défini la variable num_column ? Est-elle initialisée ?

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut
    bonjour,

    oui oui, la variable num_col est bien initialiser (en fait c'est un paramettre a la fonction)

    voila fonction complete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    var statarray = null;
    var table = null;
     
    function stat_sort(num_column, type_of_sort){
     
        if(statarray == null) {
            statarray = get_general_stat();
            table = document.getElementById('GeneralStatTableId')
            }
        statarray.sort(function mysort(a,b){
                                            if (type_of_sort == 1) {
                                                  return a[num_column] < b[num_column];    
                                            }else{
                                                  return a[num_column] > b[num_column];     
                                            }
                                   }
                                );
         while(table.rows.length != 1) // ZERO EST LA LIGNE DES TITRES
            table.deleteRow(table.rows.length-1);
     
     
        for(var j = 0; j < statarray.length; j++) {
                // crée une ligne de tableau
                var row = table.insertRow(-1);
                for(var i = 1; i < statarray[0].length; i++) {
                    var cell = row.insertCell(i-1)
                    if(i == 1) {
                       cell.innerHTML ='<a href="'+statarray[j][1]+'.html" class="statlink">'+statarray[j][i]+'</a>';
                    }else
                        cell.innerHTML = statarray[j][i];
               }
        }
    }
    et cette fonction est appelé en html comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <IMG SRC="stat_u.jpg" ALT="stat exp" HEIGHT=10 onclick="stat_sort(1,0)">
    voila.

    merci

    a++

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    parseInt
    +
    faire la différence entre variable interne et variable global

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut
    heu.. desolé, mais je comprend pas trop.

    parseint sur quoi?? tout est integer.
    idem pour var global-> je vois pas ou est mon erreur.

    merci

    a+++

  6. #6
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Sauf la deuxième ligne!
    ie attends des valeurs -1 0 1, tu lui envoie true false

    stat_sort(num_column, type_of_sort){
    num_column et type_of_sort sont en local, recopier en global

    return a[num_column] < b[num_column];
    num_column, type_of_sort sont en global





    statarray.sort( function mysort(a,b){
    test=1;
    if(isNaN(a[num_column])){
    if (type_of_sort == 1) {
    test= (b[num_column] > a[num_column])?1:-1;
    }else{
    test= (b[num_column] > a[num_column])?-1:1;
    }
    }else{
    if (type_of_sort == 1) {
    test= b[num_column] - a[num_column];
    }else{
    test= a[num_column] - b[num_column];
    }
    }
    return test;
    }

    );

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 421
    Points : 189
    Points
    189
    Par défaut
    merci, tout fonctionne


    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Petit probleme avec Arrays.Sort(...)
    Par Seth77 dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 15/01/2006, 12h48
  2. cvs sous eclipse: difference Branche et version
    Par baert dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 12/01/2006, 11h19
  3. sql sous access different?
    Par steinfield dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/12/2005, 23h48
  4. Array + sort
    Par zizou39 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/08/2005, 16h10
  5. Réponses: 1
    Dernier message: 02/08/2003, 18h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo