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:D
Version imprimable
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:D
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:
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:
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 =)