VOil� je d�clare au d�part un objet Tab
je voudrasi venir y ajouter des trucs mais j'ai un gros trou de m�moire ...Code:var Tab={0:"a"}
et je n'arrive pas a trouver sur quels termes chercher sous google ...
Version imprimable
VOil� je d�clare au d�part un objet Tab
je voudrasi venir y ajouter des trucs mais j'ai un gros trou de m�moire ...Code:var Tab={0:"a"}
et je n'arrive pas a trouver sur quels termes chercher sous google ...
Tu peux faire Tab["toto"] = "titi";
ou Tab.tata = "tutu";
Dans les 2 cas, Tab est consid�r� comme un objet, avec une s�rie d'attributs mis dans une "Map" (Hash ou Tree, je ne sais pas).
Sinon, tu dois pouvoir faire un Tab.push.
non justement le push ne marche pas lorsque je d�clare comme ci dessus :(
j'a �galement tent� le concat ... sans succ�s
Effectivement, pour que le push fonctionne, tu est oblig� des faire un
Code:
1
2
3 var Tab = new Array(); Tab.push("a");
donc ce n'est pas un hash ...
ma question porte sur l'ajout d'elements dans un hash ...
Tu peux regarder sur ce site. Si tu fais un
c'est g�r� en interne comme les HashMap de Java.Code:
1
2
3 var X =new Array(); X['toto'] = 'titi';
je connais les array litt�raux ... merci ...
je ne souhiate utiliser ni array ni array litt�ral ...
je voudrais utiliser un hash et ajouter des �l�ments dedans
et comme ceci :
Code:
1
2
3
4
5
6 var Tab={0:"a"}; Tab[1] = "b"; alert(Tab[0]+" ; "+Tab[1]);
:question:
tu as du te tromper de quai Auteur ... :aie: tu as un waggon de retard :king:
j'en suis arriv� aux prototype...
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 <SCRIPT type='text/javascript' > var Tab={"a":1} Tab["b"]=2; Object.prototype.Length=function(){ var L=0 for(key in this){alert(this[key] instanceof Function); if(this.hasOwnProperty(key) && !( this[key] instanceof Function) ){L++};} return L; } Object.prototype.Add=function(args){ for (key in args) { if(args.hasOwnProperty(key) && !(this[key] instanceof Function) ){this[key]=args[key]}; } } Object.prototype.Dump=function(){ var dump=""; for (key in this){ if(this.hasOwnProperty(key) && !(this[key] instanceof Function) ){dump+=key + " => " + this[key] +"<br/>";} } return dump; } Tab.Add({c:3,d:4,e:5,f:6}) </SCRIPT> </head> <body onload="document.getElementById('test').innerHTML=Tab.Dump()"> <div id='test'></div> </body> </html>
Pour en revenir aux diff�rences que je notais entre les hash et l'array litt�ral :
Code:
1
2
3
4
5 var hashObject = {}; var arrayObject = []; alert(hashObject instanceof Array); // false alert(arrayObject instanceof Array); // true
J'ai du me cramer une paire de neurone au passage
je souhaiterais coller le nom de l'objet avant les crochets de dump :
this.??Code:
1
2
3
4
5
6
7 Object.prototype.Dump=function(){ var dump="Name["; for (key in this){ if(this.hasOwnProperty(key) && !(this[key] instanceof Function) ){dump+=key + " => " + this[key] +";";} } dump+="]" return dump; }
J'ai d�j� eu ce pb de devoir conna�tre le nom de l'objet. La seule solution que j'avais trouv�e, c'est de le passer dans le constructeur.
C'est pas g�nial, mais j'ai pas mieux.Code:
1
2
3
4
5
6 fonction Object(nom) { this.nomObjet = nom; } var x = new Object("x");
Sinon, pour le code
C'est plus performant si tu remplaces le "String += ", par un Array.push, puis un join.Code:
1
2
3
4
5
6
7
8 for (key in this) { if(this.hasOwnProperty(key) && !(this[key] instanceof Function) ) { dump+=key + " => " + this[key] +";"; } }
Soit :
Code:
1
2
3
4
5
6
7
8
9
10 var total = new Array(); for (key in this) { if(this.hasOwnProperty(key) && !(this[key] instanceof Function) ) { total.push( key + " => " + this[key] ); } } return "Name[" + total.join(";") + "]";
:mouarf3:
Auteur tu as vraiment du rat� un truc alors ..;
en passant un hash en argumant ...Code:
1
2
3
4 Object.prototype.Add=function(args){ for (key in args) { if(args.hasOwnProperty(key) && !(this[key] instanceof Function) ){this[key]=args[key]}; } }
Je suis perplexe 8O
et m�me:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <script type="text/javascript"> window['Tab']={0:'a'} var ploc={2:"b"} Object.prototype.Nom=function(){ var NOM="undefined" for (elts in window){if(window[elts]==this){ NOM=elts;} } return NOM; } alert(Tab.Nom()) alert(window['ploc'][2]) alert(ploc.Nom()) </script>
8O8OCode:alert(window['ploc'].Nom())
Pourquoi donc reconnait-il window['ploc'] dans l'alert mais pas dans me prototype ????
Comme d'habitude �a passe sous FFX :roll:
Hum.. SubClass ton �l�ment et utilise les m�thodes comme hash
D�sol� j'ai pas vu le rapport :oops:
Le hash permet bien d'acc�der � des donn�es plus rapidement que si tu parcourrais un tableau ou je dis une connerie ?
Tu souhaites donc utiliser le nom de la propri�t� de ton objet comme cl� ?
Bon je vais clore ce sujet et le mettre en r�solu parceque l� �a ne rel�ve plus vraiment du hash;
mon souci de hash est r�solu...