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 :

Comportement bizarre, tableau associatifs


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut Comportement bizarre, tableau associatifs
    Bonjour,

    J'ai cree une méthode pour l'objet Array qui me renvoie en String les elements du tableau associatif appelant de la façon qui me convient.

    Ex de ce que je veux: tab["p1"]="v1", tab["p2"]="v2"
    --> &properties=p1$p2$&values=v1$v2$

    Ma fonction:
    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
    Array.prototype.formaterArgumentsServlet = function()    
        {
            var resultFormatage = "";
            if (this != null) {
                var aProps = "";
                var aValues = "";
                for(var aParam in this) {
                    aProps = aProps + aParam + "$";
                    aValues = aValues + this[aParam] + "$";
                }
                if(aProps != "") {
                    resultFormatage = "&properties=" + aProps + "&values=" + aValues;
                }
            }
            return resultFormatage;
        }
    Et ce que j'obtiens pour l'exemple ci-dessus:
    &properties=p1$p2$formaterArgumentsServlet$&values=v1$v2$<le corps de ma fonction>$

    Il ne me sortirait que mon nom et corps de fonction à la limite, mais la je ne comprends pas du tout.

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    en créant ta fonction formaterArgumentsServlet() tu ajoutes une propriété à l'objet Array. Et comme ce n'est pas du code natif, il te l'affiche en totalité.

    Je pense que si tu fait ceci :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var tab  = new Array();
    alert(tab["formaterArgumentsServlet"]);

    tu verras le code de ta fonction.

    Regarde voir si en ajoutant une condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for(var aParam in this) 
    {
       if (aParam != "formaterArgumentsServlet")
       {  
           aProps = aProps + aParam + "$";
           aValues = aValues + this[aParam] + "$";
       } 
    }

  3. #3
    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
    Salut,

    Oui j'ai un probleme une fois, c'est que la structure for in peut scanner les indices d'un Array, mais dans certains cas peut scanner les propriétés de l'objet Array (lol).
    Donc pour parcourir un tableau toujours utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (var i = 0; i < tab.length; i++) { }

  4. #4
    Membre Expert Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Par défaut
    Auteur> Je n'ai plus le temps de tester mais effectivement je suis d'accord avec toi, c'est d'ailleurs ce que je comptais faire, je voulais juste m'assurer que c'était normal et non une erreur plus profonde de ma part.

    Gruik> Ok, mais en parcourant le tableau ainsi on n'a pas accès au clefs associatives ce dont j'ai absolument besoin dans mon cas.

    Merci à tous les deux.

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

Discussions similaires

  1. [XSL-FO] comportement bizarre avec tableau
    Par titouille dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 25/11/2009, 12h47
  2. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 10h39
  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