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 :

ajouter dans un hash


Sujet :

JavaScript

  1. #1
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut ajouter dans un hash
    VOilà je déclare au départ un objet Tab
    je voudrasi venir y ajouter des trucs mais j'ai un gros trou de mémoire ...
    et je n'arrive pas a trouver sur quels termes chercher sous google ...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 43
    Points : 52
    Points
    52
    Par défaut
    Tu peux faire Tab["toto"] = "titi";
    ou Tab.tata = "tutu";

    Dans les 2 cas, Tab est considéré comme un objet, avec une série d'attributs mis dans une "Map" (Hash ou Tree, je ne sais pas).
    Sinon, tu dois pouvoir faire un Tab.push.

  3. #3
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    non justement le push ne marche pas lorsque je déclare comme ci dessus

    j'a également tenté le concat ... sans succès

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 43
    Points : 52
    Points
    52
    Par défaut
    Effectivement, pour que le push fonctionne, tu est obligé des faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       var Tab = new Array();
       Tab.push("a");

  5. #5
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    donc ce n'est pas un hash ...
    ma question porte sur l'ajout d'elements dans un hash ...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 43
    Points : 52
    Points
    52
    Par défaut
    Tu peux regarder sur ce site. Si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var X =new Array();
    X['toto'] = 'titi';
    c'est géré en interne comme les HashMap de Java.

  7. #7
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    je connais les array littéraux ... merci ...

    je ne souhiate utiliser ni array ni array littéral ...

    je voudrais utiliser un hash et ajouter des éléments dedans

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 651
    Points : 11 145
    Points
    11 145
    Par défaut
    et comme ceci :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var Tab={0:"a"};
    Tab[1] = "b";
     
     
    alert(Tab[0]+" ; "+Tab[1]);


  9. #9
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    tu as du te tromper de quai Auteur ... tu as un waggon de retard

    j'en suis arrivé aux prototype...

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <SCRIPT type='text/javascript' >
    var Tab={"a":1}
    Tab["b"]=2;
     
     
     
    Object.prototype.Length=function(){
    var L=0
    for(key in this){alert(this[key] instanceof Function); if(this.hasOwnProperty(key) && !( this[key] instanceof Function) ){L++};}
    return L;
    }
     
    Object.prototype.Add=function(args){
    for (key in args) { if(args.hasOwnProperty(key) && !(this[key] instanceof Function) ){this[key]=args[key]};
    	}
    }
     
    Object.prototype.Dump=function(){
    var dump="";
    for (key in this){ if(this.hasOwnProperty(key) && !(this[key] instanceof Function) ){dump+=key + " => " + this[key] +"<br/>";}
    }
    return dump;
    }
     
    Tab.Add({c:3,d:4,e:5,f:6})
     
     
    </SCRIPT>
    </head>
     
    <body  onload="document.getElementById('test').innerHTML=Tab.Dump()">
     
    <div id='test'></div>
    </body>
     
    </html>

  10. #10
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Pour en revenir aux différences que je notais entre les hash et l'array littéral :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var hashObject = {};
    var arrayObject = [];
     
    alert(hashObject  instanceof Array); // false
    alert(arrayObject instanceof Array); // true

  11. #11
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    J'ai du me cramer une paire de neurone au passage

    je souhaiterais coller le nom de l'objet avant les crochets de dump :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Object.prototype.Dump=function(){
    var dump="Name[";
    for (key in this){ if(this.hasOwnProperty(key) && !(this[key] instanceof Function) ){dump+=key + " => " + this[key] +";";}
    }
    dump+="]"
    return dump;
    }
    this.??

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 43
    Points : 52
    Points
    52
    Par défaut
    J'ai déjà eu ce pb de devoir connaître le nom de l'objet. La seule solution que j'avais trouvée, c'est de le passer dans le constructeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    fonction Object(nom) 
    {
        this.nomObjet = nom;
    }
    var x = new Object("x");
    C'est pas génial, mais j'ai pas mieux.

    Sinon, pour le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for (key in this)
    {
        if(this.hasOwnProperty(key) && !(this[key] instanceof Function) )
        {
             dump+=key + " => " + this[key] +";";
        }
    }
    C'est plus performant si tu remplaces le "String += ", par un Array.push, puis un join.
    Soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var total = new Array();
    for (key in this)
    {
        if(this.hasOwnProperty(key) && !(this[key] instanceof Function) )
        {
             total.push( key + " => " + this[key] );
        }
    }
    return "Name[" + total.join(";") + "]";

  13. #13
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 651
    Points : 11 145
    Points
    11 145
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    tu as du te tromper de quai Auteur ... tu as un waggon de retard

    j'en suis arrivé aux prototype...
    un wagon de retard ? Tu te demandais comment ajouter un élément :

    Citation Envoyé par SpaceFrog Voir le message
    VOilà je déclare au départ un objet Tab
    je voudrasi venir y ajouter des trucs mais j'ai un gros trou de mémoire ...
    Citation Envoyé par SpaceFrog Voir le message
    ma question porte sur l'ajout d'elements dans un hash ...
    Citation Envoyé par SpaceFrog Voir le message
    je voudrais utiliser un hash et ajouter des éléments dedans
    en aucun cas tu n'as posté ton prototype ou j'ai vraiment raté un truc

  14. #14
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut


    Auteur tu as vraiment du raté un truc alors ..;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Object.prototype.Add=function(args){
    for (key in args) { if(args.hasOwnProperty(key) && !(this[key] instanceof Function) ){this[key]=args[key]};
    	}
    }
    en passant un hash en argumant ...

  15. #15
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Je suis perplexe
    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
    <script type="text/javascript">
    window['Tab']={0:'a'}
    var ploc={2:"b"}
     
    Object.prototype.Nom=function(){
        var NOM="undefined"
    	for (elts in window){if(window[elts]==this){ NOM=elts;}
    	                           }
              return NOM;
    }
     
    alert(Tab.Nom())
    alert(window['ploc'][2])
    alert(ploc.Nom())
    </script>
    et même:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(window['ploc'].Nom())

    Pourquoi donc reconnait-il window['ploc'] dans l'alert mais pas dans me prototype ????

    Comme d'habitude àa passe sous FFX

  16. #16
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Hum.. SubClass ton élément et utilise les méthodes comme hash

  17. #17
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Désolé j'ai pas vu le rapport

  18. #18
    Membre confirmé Avatar de d-Rek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 438
    Points : 455
    Points
    455
    Par défaut
    Le hash permet bien d'accéder à des données plus rapidement que si tu parcourrais un tableau ou je dis une connerie ?
    Tu souhaites donc utiliser le nom de la propriété de ton objet comme clé ?

  19. #19
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Bon je vais clore ce sujet et le mettre en résolu parceque là ça ne relève plus vraiment du hash;

    mon souci de hash est résolu...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DEB] Ajout de valeurs dans un hash
    Par htristra dans le forum SGBD
    Réponses: 2
    Dernier message: 21/09/2006, 15h09
  2. Ajout dans une base
    Par semaj_james dans le forum Bases de données
    Réponses: 3
    Dernier message: 01/06/2004, 17h23
  3. [LG]probleme d'ajout dans une liste chainée...
    Par misteryann dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2004, 21h28
  4. ajouter dans un fichier xml
    Par hamma2 dans le forum APIs
    Réponses: 4
    Dernier message: 29/09/2003, 13h57
  5. Connaitre l'unitée à ajouter dans USES
    Par DelphiCool dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2002, 14h48

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