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 :

[Sort][Hash] Ordonner


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 161
    Par défaut [Sort][Hash] Ordonner
    Bonjour,
    Y a t-il moyen d'ordonner un Hash facilement?
    J'ai l'impression que je cherche la lune.
    Merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ordonner facile... mais heu tu entends quoi au juste pas hash ? un array ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 161
    Par défaut
    J'ai un HASH de ce type que j'aimerais ordonner par ordre alphabétique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {"id25":{"Identifiant":"id25", "Nom":"Blabla"},
    "id40":{"Identifiant":"id40", "Nom":"Blibli"},
    "id65":{"Identifiant":"id65", "Nom":"Bloblo"},
    "id72":{"Identifiant":"id72", "Nom":"Blublu"}}
    J'aimerais trier mon hash sur l'élément Nom.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    j'avoue que je coince ne sachant pas ce qu'est un hash ...

    mais si tu peux paasser le hash en array par exemple au moyen d'un split ... l'array accepte le sort ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 161
    Par défaut
    Oui en plus c'est vrai que mon HASH n'en n'est pas vraiment un.
    J'aimerais parcourir le hash sinon. Mais par indice (1,2,3, ...) et non par clé (id25, id40, id65, ...).
    J'ai l'impression que c'est impossible.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    a priori je dirais que si tu fais un split sur " tu devrais pouvoir obtenir un array exploitable ensuite
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var toto = {"id25":{"Identifiant":"id25", "Nom":"Blabla"},
    "id40":{"Identifiant":"id40", "Nom":"Blibli"},
    "id65":{"Identifiant":"id65", "Nom":"Bloblo"},
    "id72":{"Identifiant":"id72", "Nom":"Blublu"}}
    Ca c'est pas un hash c'est un objet !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto.id25.Identifiant = "id25";
    Si tu veux ensuite parcourir toutes les propriété de ce truc tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (p in toto) {
       ...
    }

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 161
    Par défaut
    Oui c'est un objet JSon.
    Mais j'aimerais le ranger par ordre alphabétique en choisissant de le trier par "Nom" par exemple.
    Je voulais me faire une fonction pour ordonner ce genre d'objet. Mais la boucle du genre de ton "for" ne me permet pas de parcourir 2 éléments en même temps pour les comparer.
    Du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto[i].Nom == toto[i+1].Nom. (Version hyper simplifié du test)

  9. #9
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Dans ce cas là c'est ton objet qui est mal conçu

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 161
    Par défaut
    Oui mais conçu comme il est conçu il me permet de le parcourir facilement aussi. :p
    Dommage que le parcours de hash ne puisse pas se faire par index comme dans certains languages où les 2 parcours existent.

  11. #11
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    a mon avis tu te pose un mauvais probleme.
    Tu essaye de trier les propriété d'un objet !!! Il n'y a pas de notion d'ordre entre les props d'un objet !
    Il faut que tu utilise alors les tableaux ([,,] il me semble)

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ben heu Mr N c'est pas ce que je dis depuis le bébut ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Citation Envoyé par SpaceFrog
    ben heu Mr N c'est pas ce que je dis depuis le bébut ?
    J'ai jamais dis le contraire

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 161
    Par défaut
    Oui mais en fait j'aimerais afficher la liste de ces objets mais pouvoir les trier pour les afficher dans un ordre concret pour le lecteur. Plutot qu'au hazard en affichant tel quel.

  15. #15
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    la seul solution "propre" que je vois c'est que tu parse les propriétés de ton objet et tu les mets dans un tableau, que tu tries.
    A la rigueur dans le tableau tu met juste les critères de tri (le nom par ex) + la clefs...

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 161
    Par défaut
    Oui dommage de ne pas pouvoir utiliser les objets pour les mettre dans un tableau. Car si je modifie cet objet il me faut remonter pour aller le modifier.
    Je crois que je vais me résigner à cette solution.

  17. #17
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    Le problème majeur est qu'un tableau associatif (aussi appelé hash) perd une grande partie de ses propriétés de tableau.
    L'autre problème est qu'il n'y a pas de relation d'ordre entre chaque élément d'un tableau associatif.
    Pourquoi tablo['truc'] viendrait avant tablo['foobar'] ou inversement ? En javaScript il n'existe pas de relation d'ordre entre deux chaines de caractère.

    D'ailleur pourquoi avoir comme des chaines de caractère comme indice de ton hash principal ? Selon moi il serait plus simple d'avoir un tableau indexé qui contienne plusieurs tableaux associatifs ou toute autre sorte d'objets. De plus si ton tableau principal devient indexé, alors il est aisé de faire un tri de ses éléments.

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 161
    Par défaut
    Je crois que vous avez raison j'ai fait un mauvais choix.
    Je vais revoir si y'a pas moyen de faire quelque chose de mieux.
    Merci pour votre aide.

Discussions similaires

  1. HASH GROUP BY et SORT GROUP BY
    Par Treize_ dans le forum SQL
    Réponses: 2
    Dernier message: 25/03/2013, 16h29
  2. Probleme sort hash
    Par loula427 dans le forum Langage
    Réponses: 7
    Dernier message: 24/03/2010, 16h39
  3. XML, HASH TABLE, Sorted list
    Par F.Saad dans le forum C#
    Réponses: 2
    Dernier message: 17/10/2009, 23h47
  4. table ordonnée sans utilisation d'une proc sort
    Par nostress dans le forum Macro
    Réponses: 6
    Dernier message: 26/05/2009, 09h29
  5. Réponses: 1
    Dernier message: 09/03/2009, 10h35

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