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 :

Tableau Associatif Objet Array()


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 205
    Par défaut Tableau Associatif Objet Array()
    Bonjour,

    Je fais un tableau associatif avec mon Tableau objet Array()
    Le probleme est lorsque je fais un MonTableau.length il me retourne zero alors que le tableau contient des données. Suis je obligé de faire un For in avec un compteur ??

    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par défaut
    Bonjour,

    Il me semble que le "for in" est la seule solution pour obtenir la taille d'un tableau associatif en javascript.

    A+

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    tu dois surement avoir un objet de type object et non array

    fait un alert(typeof tontableau);

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 205
    Par défaut
    Oui c'est cas bien sur vue que MonTableau = new Array()
    Mais comment je fais pour avoir sa taille ? si MonTableau.length = 0 alors qu'il contient des lignes ?

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    sujet déja traité il faut en effet passer par une boucle for each et tester hasOwnProperty puis incrémenter un compteur

    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
    <script type='text/javascript'>
    Array.prototype.MyLength=ArrayLength
     
    function ArrayLength(){
    var lg=0;
    			for (ind in this){
    			                  if(this.hasOwnProperty(ind)){	 
    			                     lg++}
    								}
    			return lg;}
     
    var tabAssDom= new Array() 
    tabAssDom[30] = "abc"
    tabAssDom[25] = "dbc"
    tabAssDom[15] = "dbc"
     
    var a=tabAssDom.MyLength()
    alert (a)
    </script>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    il s'agit en fait d'un hash et non pas d'un array a proprement parler, donc seule façon : parcourir la collection ...

    astuce par contre pour savoir si un élément se trouve dans ton 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
     
    			function retourTableau(){
     var MonTableau = new Array()
    MonTableau['Lundi'] = 'Travail';
    MonTableau['Mardi'] = 'Sport';
    MonTableau['Mercredi'] = 'Voyage';
    return MonTableau;
    }
     
    		var TabASSo = retourTableau();
    		alert(TabASSo["Lundi"]);
     
    	if ("Lundi" in TabASSo) // returns true or false
    	{
    		alert('true');
    	}

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 205
    Par défaut
    Merci beaucoup pour la réponse et l'astuce !!!

    see you soon =)

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

Discussions similaires

  1. [Smarty] objet foreach: accès tableau associatif imbriqué
    Par noobC dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/11/2009, 12h48
  2. Réponses: 4
    Dernier message: 21/01/2009, 14h45
  3. [SOAP] tableau associatif --> tableau d'objets
    Par mickael.guilbert dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/01/2008, 18h05
  4. [Tableaux] Tableau associatif avec des array
    Par Piccolo_son dans le forum Langage
    Réponses: 6
    Dernier message: 18/12/2007, 08h23
  5. [D7] Tableau associatif (hash, associative array)?
    Par fredtheman dans le forum Delphi
    Réponses: 3
    Dernier message: 21/06/2006, 18h42

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