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
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
Bonjour,
Il me semble que le "for in" est la seule solution pour obtenir la taille d'un tableau associatif en javascript.
A+
tu dois surement avoir un objet de type object et non array
fait un alert(typeof tontableau);
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 ?
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>
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'); }
Merci beaucoup pour la réponse et l'astuce !!!
see you soon =)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager