Partage
  • Partager sur Facebook
  • Partager sur Twitter

Trier un object en fonction de sa valeur

Sujet résolu
    8 juillet 2010 à 22:16:17

    Voilà à quoi mon objet ressemble:
    var obj4 = {
        "Toto" : 142,
        "Pom" : 7555,
        "Robert" : 1,
        "Bob":21
    };
    

    Je souhaiterais obtenir un objet comme cela
    var obj4 = {
          "Pom" : 7555,
          "Toto" : 142,
          "Bob":21,
          "Robert" : 1
    };
    


    Mais je ne sais pas comment le trier
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      8 juillet 2010 à 22:27:51

      tu peux pas directement, faut faire un array, le trier et sortir le résultat comme tu veux.

      Le plus simple c'est de nous dire ce que tu veux en faire.
      • Partager sur Facebook
      • Partager sur Twitter
        8 juillet 2010 à 23:30:51

        Je veux écrire les valeurs dans le document, quelque chose sous cette forme:
        var obj4 = {
            "Toto" : 142,
            "Pom" : 7555,
            "Robert" : 1,
            "Bob":21
        };
        
        for (var i in obj4) {
            document.write(i+'='+obj4[i]+'<br>');  
            j++;
        }
        

        je peux exploiter. Le problème est l'ordre d'écriture des données. Je vais regarder la liste d'algorithme.

        **edit**
        Je ne comprends rien à la liste d'algorithme. Je vais plus me concentrer pour trouver des informations sur la méthode de la première réponse.
        Je préfère directement chercher le code en javascript, mais merci cela me donne un aperçu du raisonnement voulu, même si je n'ai pas les connaissances en informatiques et en mathématiques pour utiliser cela correctement.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          8 juillet 2010 à 23:51:44

          l'a été un peu sec darkodam sur ce coup ^^

          en gros l'idée c'est

          function afficheObjet(obj) {
              // on crée les variables dont on a besoin
              var trie = [],
                  html = '',
                  affiche = gebi("id_div_pour_affichage");
          
              // on crée le tableau temporaire qui permettra de trier
              for (var i in obj) {
                trie.push([i, obj[i]]);
              }
          
              // on utilise la méthode sort de l'objet Array
              // pour trier notre tableau
              trie.sort(function (a, b) {
                return b[1] - a[1];
              });
          
              // on prépare l'affichage de la chaine html
              for (var n = 0, nl = trie.length; n < nl; n++) {
                html += (n+1) + "=" + trie[n] + "<br>";
              }
           
              // on affiche les informations dans le document
              affiche.innerHTML = html;
          }
          


          l'utilisation :
          afficheObjet({/* tes trucs */});
          

          va voir mon tuto a l'occase.

          ( edit ) commenté en plus \o/
          • Partager sur Facebook
          • Partager sur Twitter
            9 juillet 2010 à 0:33:06

            Cela marche. Merci beaucoup.
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              9 juillet 2010 à 0:34:08

              met ton sujet en résolu alors :)

              ^^
              • Partager sur Facebook
              • Partager sur Twitter

              Trier un object en fonction de sa valeur

              × 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