Partage
  • Partager sur Facebook
  • Partager sur Twitter

Trier un tableau associatif

Sujet résolu
    11 décembre 2010 à 14:36:33

    Bonjour,

    J'aimerais bien ordonner un tableau associatif tel que celui :

    tab[asso1] = 134;
    tab[asso2] = 10;
    tab[asso3] = 500;
    tab[asso4] = 200;
    


    Pour le moment j'ai récupérer sur internet cette fonction pour trier le tableau :
    function assocSort(oAssoc) {
    	var idx; 
    	var key; 
    	var arVal = []; 
    	var arValKey = []; 
    	var oRes = {};
    	
    	for (key in oAssoc) {
    		arVal[arVal.length] = oAssoc[key];
    		arValKey[oAssoc[key]] = key;
    	}
    	arVal.sort();
    	for (idx in arVal)
    		oRes[arValKey[arVal[idx]]] = arVal[idx];
    	
    	return oRes;
    }
    


    Ce qui donnerais une fois trier :

    tab[asso2] = 10;
    tab[asso1] = 134;
    tab[asso4] = 200;
    tab[asso3] = 500;
    


    Mais j'aimerais faire plus rapide, car la fonction est assez lente ...
    Est-ce possible ?
    Le tri doit évidemment se faire juste sur les valeur mais les clé doivent être gardées ...

    Merci d'avance de votre aide !


    • Partager sur Facebook
    • Partager sur Twitter
      11 décembre 2010 à 15:11:59

      Pourrais-je voir la déclaration de la variable tab ?

      En JavaScript, un objet composé de couples clé/valeur ne peut pas être trié, pour la simple et bonne raison qu'il n'y a pas d'ordre dans une boucle for/in.
      • Partager sur Facebook
      • Partager sur Twitter
        11 décembre 2010 à 15:25:59

        Hello !

        J'ai finalement trouvé ceci : http://www.siteduzero.com/forum-83-584 [...] vascript.html

        Je trouve cette solution beaucoup plus élégante :)

        Merci de ton aide ^^

        Bonne journée :)
        • Partager sur Facebook
        • Partager sur Twitter
          11 décembre 2010 à 15:27:42

          Aide par autre topic interposé. J'aime. :)

          Ravi d'avoir pu t'aider ;)
          • Partager sur Facebook
          • Partager sur Twitter

          Trier un tableau associatif

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown