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 :

Paramètrer la fonction sort()...


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut Paramètrer la fonction sort()...
    Salut, je cherche le moyen de paramètrer la fonction sort, pour l'instant, je n'arrive pas à grand chose mais voici déjà mon résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function mysortfn(a,b,) {
       if (a[1]<b[1]) return -1;
      if (a[1]>b[1]) return 1;
       return 0;
    }
     
    arrayToSort.sort(mysortfn);
    Le arrayToSort est une matrice à 2 dimensions composée de lignes contenant : col1 nom, col2 prénom, col3 localité, col4 age.
    Avec ma fonction, le tri s'effectue bien mais seulement sur la 2nde colonne et dans l'ordre croissant... Mon but serait de pouvoir envoyer 2 paramètres à cette fonction, le premier pour savoir si le tri doit être croissant ou décroissant, le second pour savoir sur quelle colonne il s'effectue...
    Si quelqu'un a une piste, je suis preneur...

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    salut,
    le moyen le plus simple serais de définir des variables en dehors de ta méthode et qu'elle interrogera :
    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
     
    var col = 1;
    var order = "asc";
    function mysortfn(a,b) {
       if(order == "asc"){
         if (a[col]<b[col]) return -1;
         if (a[col]>b[col]) return 1;
         return 0;
       }
       else{
         if (a[col]>b[col]) return -1;
         if (a[col]<b[col]) return 1;
         return 0;
       }
    }
    bon c'est pas super optimisé, on doit pouvoir faire mieux mais le principe y est

  3. #3
    Membre du Club

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 12
    Points : 48
    Points
    48
    Billets dans le blog
    1
    Par défaut
    Hop.

    Désolé de "remonter" ce topic, mais je me suis tapé un petit truc assez sympa qui permet de balancer ses paramètres dans l'appel d'un prototype :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function userDefinedFunction_sortByColumn(columnName,orderbyASC)
    {
    	function userSortFunctionASC(elementA,elementB)
    	{
    		return elementA[columnName]>elementB[columnName]?1:-1;
    	}
    	function userSortFunctionDESC(elementA,elementB)
    	{
    		return elementA[columnName]<elementB[columnName]?1:-1;
    	}
    	this.sort(orderbyASC?userSortFunctionASC:userSortFunctionDESC);
    }
    Array.prototype.sortByColumn=userDefinedFunction_sortByColumn;
    Il ne reste plus qu'à faire appel à la fonction de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monArray.sortByColumn(<nom de la colonne>,<1=ASC/0=DESC>);

Discussions similaires

  1. Réponses: 10
    Dernier message: 04/01/2006, 17h57
  2. liste énumérée de const. perso comme paramètre de fonction
    Par batou22003 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 13/12/2005, 21h37
  3. Paramètres de fonction : pointeurs ou valeurs ?
    Par Xandar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/11/2005, 17h50
  4. Retrouver les valeurs des paramètres des fonctions d'une DLL
    Par Bernard Martineau dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 11h42
  5. Paramètre de fonction
    Par Reynald dans le forum Débuter
    Réponses: 6
    Dernier message: 05/01/2005, 22h48

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