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 :

[POO] Longueur d'un tableau d'un objet littéral


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 183
    Points : 121
    Points
    121
    Par défaut [POO] Longueur d'un tableau d'un objet littéral
    Bonne année a tous.

    J'utilise une syntaxe correcte pour initialiser un tableau d'objet (voir Constantes littérales).. mais j'ai un piti problème pour connaitre la taille d'un sous-tableau :

    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
     
    var tableaudobjet = [
      {
        nom: "objet_1",
        tableau_de_valeurs: {0:"valeur_0"}
      },
      {
        nom: "objet_2",
        tableau_de_valeurs: {0:"valeur_0", 1:"valeur_1"}
      },
      {
        nom: "objet_3",
        tableau_de_valeurs: {0:"valeur_0", 1:"valeur_1"}
      }
    ];
     
    var array_tableaudobjet=new Array(tableaudobjet[1].tableau_de_valeurs);
    alert(array_tableaudobjet.length); // retourne 1.. normal
     
    var array_tableaudobjet=new Array(tableaudobjet[1].tableau_de_valeurs);
    alert(array_tableaudobjet.length); // retourne 1.. pas normal
    Hum... ..Wouad'else ? (ça veut dire aussi que je vais me faire un café).
    Les réponses provenant de programmeurs qui ne sont pas mannequins sont acceptés.

  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 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Sujet déja traité et résolu ...
    Merci de faire une petite recherche sur le forum ...

  3. #3
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 183
    Points : 121
    Points
    121
    Par défaut
    Déjà résolu, déjà résolu... ..il semble qu'un post récent montre que ce n'est pas le cas -> mon problème est très proche de celui de roro .. non résolu non plus. Il faut dire que lire la taille d'un tableau littéral n'est pas très bien documenté. Mais bon, j'ai continué de chercher, et j'ai trouvé cet autre post, et la réponse de javatwister (Expert Confirmé Sénior) sous le titre de "récupération du contenu et de la longueur d'un tableau contenant des indices littéraux" (un peu avant la fin de la page). Je me suis dit "génial !" J'ai donc repris son code :

    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
     
    function tabinfo(){
    	var lg=0;
    	var lignes="";
     
    	for (ind in this){
    		if(this.hasOwnProperty(ind)){	
    			// seules les propriétés uniques 
    			// et non héritées seront retenues
    			lg++;
    			lignes+='cle: ' + ind + ' ==> valeur: ' + this[ ind] + "\n";
    		}
    	}
     
    	return  "ce tableau contient " + lg + " lignes:\n\n" + lignes;
    }
     
    Array.prototype.info=tabinfo;
    Et j'ai donc appelé cette nouvelle fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var array_tableaudobjet=new Array(tableaudobjet[1].tableau_de_valeurs);
    alert(array_tableaudobjet.info());
    Ca retourne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ce tableau contient 1 lignes:
     
    cle: 0 ==> valeur: [object Object]
    La deuxième ligne de mon tableau d'objet (donc indice 1) comporte pourtant un tableau de valeur avec 2 éléments..
    Hum... ..Wouad'else ?

  4. #4
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    183
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 183
    Points : 121
    Points
    121
    Par défaut
    Je pense que pour régler le problème, le plus simple est de modifier la déclaration. C'est une solution de contournement, mais je pense que c'est le plus simple, et ne vaut pas la peine de se gaver la cervelle.. (prochaine version de javascript ??).

    J'ai donc modifié la déclaration ainsi :


    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
     
    var tableaudobjet = [
      {
        nom: "objet_1",
        tableau_de_valeurs: new Array("valeur_0")
       },
      {
        nom: "objet_2",
        tableau_de_valeurs: new Array("valeur_0", "valeur_1")
      },
      {
        nom: "objet_3",
        tableau_de_valeurs: new Array("valeur_0", "valeur_1")
      }
    ];
    et maintenant la fonction prototype retourne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ce tableau contient 1 lignes:
     
    cle: 0 ==> valeur: valeur_0,valeur_1
    Maintenant, si quelqu'un connait un autre solution.. je vais attendre un peu avant de mettre résolu.

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

Discussions similaires

  1. [POO] Tri d'un tableau contenant des objets
    Par shadypierre dans le forum Langage
    Réponses: 4
    Dernier message: 26/02/2009, 20h49
  2. Réponses: 4
    Dernier message: 04/02/2007, 00h06
  3. [POO] tableaux à l'interieur d'un objet
    Par thefaycal dans le forum Langage
    Réponses: 6
    Dernier message: 14/09/2005, 14h36
  4. [POO] probleme d'acces aux parametres un objet
    Par lejert dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/04/2005, 09h13
  5. [POO] Comment connaître le type d'un objet
    Par zizou39 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/03/2005, 09h46

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