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 :

Copier un tableau associatif


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut Copier un tableau associatif
    Bonjour,

    mon problème est dans le titre!

    J'ai un tableau js à 2 dimensions et associatifs, ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    monTab["papa"]["maman_1"] = "bébé_1";
    monTab["papa"]["maman_2"] = "bébé_2";
    ...
    (Désolé pour exemple un peu trop expressif !).

    Bref, j'aimerai faire une copie profonde de ce tableau mais je ne trouve pas d'autre solution que de passer par 2 boucles for in imbriquées, solution beaucoup trop couteuse en ressource...

    Auriez-vous une solution stable et performante à me proposer?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Hello,

    As tu réellement besoin de copier?
    Sinon je connais pas d'autre moyen que de recopier les propriétés à la main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var prop;
     
    for (prop in obj) {
       obj2[prop] = obj[prop] /* + ton code ici pour copier la valeur si la valeur est un objet ou tableau */;
    }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    Merci pour ta réponse.

    Ne peut-on pas utiliser la même méthode que la copie d'un objet? (méthode que je ne connais d'ailleurs pas mais qui existe me semble t-il..)

    Sinon je crois qu'il falloir revoir ma façon de faire pour arriver à mes fins, car malheureusement, j'ai bel et bien besoin de cette copie...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    Tu trouveras pas mal d'exemple de clonage d'objet sur la grande toile.
    Les fonctions clone()

    Ca devrait fonctionner pour ton cas. Il faut que tu test.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    Merci pour vos reponses

    Concernant la fonction clone(), je n'ai pas trouvé cette fonction en natif dans javascript... Existe t-elle?

    Sinon j'aurai une autre question : si je veux supprimer un element de mon tableau js associatifs à 2 dimensions, je dois faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    delete (monTab["papa_1"]["maman_1"]);
    Le probleme c'est que quand je compte le nombre de papas avant suppression et apres suppression, sa reste le même nombre!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var cpt = 0;
    for (var papa in monTab)
    { 
       cpt++;
    }
    alert("cpt = "+cpt);

    Quelqu'un a une idée pourquoi?

  6. #6
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par benthebest Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    delete (monTab["papa_1"]["maman_1"]);
    Là tu ne supprimes que la propriété "maman_1" de monTab["papa_1"]
    Si tu veux supprimer la propriété "papa_1"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    delete (monTab["papa_1"]);

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    Citation Envoyé par benthebest Voir le message
    Concernant la fonction clone(), je n'ai pas trouvé cette fonction en natif dans javascript... Existe t-elle?
    Pas à ma connaissance.
    C'est du spécifique que tu devras intégrer dans ta source.

    Pour ton tableau, si tu veux il a cette forme (devant, le niveau) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    0 - monTab = []
    1 - monTab["papa_1"] = []
    2 - monTab["papa_1"]["maman_1"] = ""
    2 - monTab["papa_1"]["maman_2"] = ""
    2 - monTab["papa_1"]["maman_3"] = ""
    1 - monTab["papa_2"] = []
    2 - monTab["papa_2"]["maman_1"] = ""
    (Bien qu'en fait, "papa_" "maman_" soit des propriétés de l'Objet de type Array)

Discussions similaires

  1. loop sur tableau associatif
    Par Plawi dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/02/2005, 11h29
  2. tableau associatif en asp ?
    Par bigsister dans le forum ASP
    Réponses: 5
    Dernier message: 26/01/2005, 16h47
  3. asp tableau associatif
    Par rfernandez dans le forum ASP
    Réponses: 6
    Dernier message: 19/12/2003, 18h58
  4. [langage] TRI TABLEAU ASSOCIATIF
    Par proner dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2003, 16h38
  5. [langage] Réinitialiser un tableau associatif.
    Par totox17 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2003, 16h29

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