Probleme de tri

Signaler
Messages postés
28
Date d'inscription
mercredi 20 septembre 2006
Statut
Membre
Dernière intervention
4 novembre 2008
-
Messages postés
28
Date d'inscription
mercredi 20 septembre 2006
Statut
Membre
Dernière intervention
4 novembre 2008
-
Bonjour à tous, j'ai un souci au niveau du tri d'une chaine de caractère de ce type X.X.X. En effet je lui demande de trier des chaines de caractères de cette forme 9.0.0 ou encore 1.0.0. Le problème apparait lorsque j'introduis une version de ce type XX.X.X c'est a dire 10.0.0 par exemple. Ce string se met entre mon 1.0.0 et mon 2.0.0. Je ne vois pas comment résoudre ce souci. Quelqu'un peut m'expliquer comment le tri est pris en compte?

Voici le source en question:

function triTableau(field, ordre)
{
    var parties = location.href.split("?");
    var newURL = parties[0];
    var requete = location.search.substring(1);
    var elements = requete.split("&");            //On sépare dans les paramètres toutes les chaines entre &
    var tab = new Array(new Array());

    for(i=0; i<elements.length; i++)
    {
        temp = elements[i].split("=");
        if(temp[0]=="col")    var col = temp[1];
        if(temp[0]=="dir")    var dir = temp[1];
    }

    newURL += "?"+elements[0]+"&col="+field+"&dir="+ordre+"";

    location.href = newURL;
}

3 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
bonjour,

ce que tu nous montres n'a rien d'un 'tri'... si ?
néanmoins, une comparaison sur une chaîne de caractères,
               se fait caractère par caractère
donc "1" < "10" < "2"
fait des comparaisons en nombre ( Number, parseInt ... )
ou met toutes tes "zones" à la même taille, ( 0 en tête )
"01" < "02" < "10"

Cordialement

          Bul [mon Site] [M'écrire]         
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Bonjour,
c'est normal, si il s'agit d'un tri de chaînes de caractères.
Pour résoudre ce problème, tu dois comme le propose bultez, soit convertir en nombre si possible, soit formater tes chaînes.

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Mon Blog
Messages postés
28
Date d'inscription
mercredi 20 septembre 2006
Statut
Membre
Dernière intervention
4 novembre 2008

Merci de vos réponses je vais faire cela