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 :

Comment fusionner 2 objets en Javascript


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut Comment fusionner 2 objets en Javascript
    Bonjour,
    comment fait-on pour fusionner 2 objets en Javascript

    par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var a={toto1:"AAA", toto2:"BBB"};
    var b={toto3:"CCC"};
    var c = a + b; 
    // je veux c={toto1:"AAA", toto2:"BBB", toto3:"CCC"};
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var a={toto1:"AAA", toto2:"BBB", xxx:"XXX"};
    var b={toto3:"CCC", xxx:"YYY"};
    var c = a + b; 
    // je veux c={toto1:"AAA", toto2:"BBB", toto3:"CCC", xxx:"YYY"};
    J'aimerais que l'objet c contienne tous les attributs de a et de b et éventuellement écrase les attributs de a par celle de b si les 2 objets possèdent les mêmes attributs.

    Merci.

  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 640
    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 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    il me semble avoir mis une contribution sur le sujet ...
    Arf je ne retrouve pas ...


    Voici quelques lignes qui pourront sans doute t'inspirer ...
    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
    var Tab={"a":1}
    Tab["b"]=2;
     
     
     
    Object.prototype.Length=function(){
    var L=0
    for(key in this){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] +";";}
    }
    dump+="]"
    return dump;
    }

  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 640
    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 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Object.prototype.Merge=function(Obj2){
    for (key in Obj2) { if(args.hasOwnProperty(key) && !(this[key] instanceof Function) ){this[key]=Obj2[key]};
    	}
    }
    s'utiliserait comme ceci:

    mais attention c'est destructeur a est modifié

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Object.prototype.Merge=function(Obj2){
    for (key in Obj2) { if(args.hasOwnProperty(key) && !(this[key] instanceof Function) ){this[key]=Obj2[key]};
    	}
    }
    s'utiliserait comme ceci:

    mais attention c'est destructeur a est modifié
    Lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var a={toto1:"AAA", toto2:"BBB"};
    var b={toto3:"CCC"};
    var c={};
    Object.prototype.Merge=function(Obj2){
    	for (key in Obj2) { 
    		if(args.hasOwnProperty(key) && !(this[key] instanceof Function)){
    			this[key]=Obj2[key]
    		};
    	}
    }
    c.Merge(a);
    c.Merge(b);
    alert(c.toto1);
    j'obtiens une erreur ligne 6 (args inconnu)

    et en faite à quoi sert ce if ?

    Tiens et j'ai remarqué que Add et Merge c'est la même chose

  5. #5
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    avec jQuery, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var c = jQuery.extend(a, b);
    @+

Discussions similaires

  1. Comment fusionner 2 objets sérialisés ?
    Par jp203 dans le forum C++
    Réponses: 1
    Dernier message: 23/01/2010, 11h09
  2. Comment fusionner plusieurs callback pour un même objet graphique
    Par biquet dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 19/04/2007, 10h39
  3. [servlet][bean]comment récupérer l'objet request
    Par otminou dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 27/09/2004, 14h40
  4. Comment mettre plusieurs objets ds un composant ?
    Par Fleury dans le forum Composants VCL
    Réponses: 7
    Dernier message: 24/05/2003, 17h34

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