Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1561 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Bug très étrange... Comprends pas !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS] Bug très étrange... Comprends pas !

n°1177450
Arjuna
Aircraft Ident.: F-MBSD
Posté le 16-08-2005 à 22:22:48  profilanswer
 

Si j'ai un tableau à deux dimensions initialisé comme suit :
 

Code :
  1. var arrBocal = new Array();
  2. for (i = 0; i < size_x; i++)
  3. {
  4. for (j = 0; j < size_y; j++)
  5. {
  6.  arrBocal[i, j] = null;
  7. }
  8. }


 
Alors c'est normal que si je vais :
 

Code :
  1. arrBocal[5, 9] = "test";


 
Alors :
 

Code :
  1. arrBocal[0, 9] = arrBocal[1, 9] = arrBocal[2, 9] = arrBocal[3, 9] = arrBocal[4, 9] = arrBocal[5, 9] = arrBocal[6, 9] = arrBocal[7, 9] = arrBocal[8, 9] = arrBocal[9, 9] = "test"


 
J'ai ce même comportement à la fois sous IE et Mizolla. C'est normal ? JS ne gère pas de tableaux à deux dimensions ???
Obligé de faire des tableaux de tableau ??? (arrBocal[i][j] ?)
 
Ou si j'ai ratté un truc dans ma déclaration :pt1cable:

mood
Publicité
Posté le 16-08-2005 à 22:22:48  profilanswer
 

n°1177453
Arjuna
Aircraft Ident.: F-MBSD
Posté le 16-08-2005 à 22:44:00  profilanswer
 

t'ain c'est terrible ce truc :)
 

Code :
  1. <script type="text/javascript">
  2. array1=new Array()
  3. function myObj(x, y)
  4. {
  5.    this.valx = x;
  6.    this.valy = y;
  7.    this.toString = function ()
  8.    {
  9.       return "{" + this.valx + ", " + this.valy + "}";
  10.    }
  11. }
  12. function compareNum(a,b)
  13. {
  14. return a.valx-b.valx;
  15. }
  16. var array1 = new Array(new myObj(800, 30), new myObj(3, 40), new myObj(70, 10));
  17. var array2 = new Array(new myObj(800, 30), new myObj(3, 40), new myObj(70, 10));
  18. array2.toString = function ()
  19. {
  20.   var ret = new String();
  21.   for (var i = 0; i < this.length; i++)
  22.   {
  23.     ret += this[i].valx + ", ";
  24.   }
  25.   if (ret.length > 0)
  26.     return ret.substr(0, ret.length - 2);
  27.   else
  28.     return "tableau vide!";
  29. }
  30. document.write("Sorted with compareNum: " + array2.sort(compareNum) + "<br/>" );
  31. document.write("Array1: " + array1 + "<br/>" );
  32. </script>


Message édité par Arjuna le 16-08-2005 à 22:50:42
n°1177455
masklinn
í dag viðrar vel til loftárása
Posté le 16-08-2005 à 22:50:02  profilanswer
 

Arjuna a écrit :

J'ai ce même comportement à la fois sous IE et Mizolla. C'est normal ? JS ne gère pas de tableaux à deux dimensions ???


Bien sûr que non [:spamafote]  

Citation :

Obligé de faire des tableaux de tableau ??? (arrBocal[i][j] ?)


Oui, comme dans la quasi totalité des langages vu le nombre de langages gérant les matrices en type natif [:spamafote]  

Arjuna a écrit :

t'ain c'est terrible ce truc :)


Ca te choque pas de penser qu'un langage gère les matrices multidimentionnelles en natif mais un sort customisable t'impressionne? http://membres.lycos.fr/angel2k/petrus/petrusquignol.gif


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1177456
Arjuna
Aircraft Ident.: F-MBSD
Posté le 16-08-2005 à 22:52:13  profilanswer
 

Ben voir qu'un langage est pas foutu de gérer des tableaux multi-dimensionnels, mais propose la surcharge des méthodes de base de ses types système, oui, je trouve ça étrange.
 
L'inverse me semble plus logique...

n°1177459
masklinn
í dag viðrar vel til loftárása
Posté le 16-08-2005 à 22:56:45  profilanswer
 

Arjuna a écrit :

Ben voir qu'un langage est pas foutu de gérer des tableaux multi-dimensionnels


Comme je le disais plus haut, le nombre de langages généraliste ayant des matrices en type natif doit se compter sur les doigts d'une main, et encore

Citation :

mais propose la surcharge des méthodes de base de ses types système, oui, je trouve ça étrange.


C'est inhérent à la structure par prototypage de l'OO du JS [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1177493
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-08-2005 à 00:07:53  profilanswer
 

Bah VB il supporte les tableaux à n dimensions, et pourtant il est tout pourri :o :p
 
Même Basic il savait faire :D
 
Sinon, je me demande... Il me semble bien que le C sait faire aussi.
 
M'enfin bon, c'est pas grave, j'ai pu finir le super truc qui sert à rien :)
 
http://magicweb.manga-torii.com/simland.htm :sol:

n°1177496
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-08-2005 à 00:14:20  profilanswer
 

Reste plus qu'à faire une V2 avec une gestion de l'espace améliorée et un fonctionnement prédateur/gibier plus évolué :)

n°1177502
masklinn
í dag viðrar vel til loftárása
Posté le 17-08-2005 à 00:40:54  profilanswer
 

Arjuna a écrit :

Sinon, je me demande... Il me semble bien que le C sait faire aussi.


Je crois pas non...
 
Par contre tu peux faire a[b][c], ou b[c][a], ou probablement c[a+b], et ptet même (c+a)[b] [:petrus75]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1177509
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-08-2005 à 01:58:13  profilanswer
 

je parle bien du C et pas du C++ hein. il me semble me souvenir qu'à l'IUT on avant fait des tableaux tout bête avec.
 
en tout cas, en ADA, on peut. évidement. normal, c'est le seul, l'unique, le meilleur :)

n°1177510
gilou
Modérateur
Modzilla
Posté le 17-08-2005 à 01:59:47  profilanswer
 

masklinn a écrit :

Comme je le disais plus haut, le nombre de langages généraliste ayant des matrices en type natif doit se compter sur les doigts d'une main, et encore

Ben et lisp et scheme avec make-array alors, hein? :D
A+,


Message édité par gilou le 17-08-2005 à 02:00:16

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
mood
Publicité
Posté le 17-08-2005 à 01:59:47  profilanswer
 

n°1177521
masklinn
í dag viðrar vel til loftárása
Posté le 17-08-2005 à 07:43:15  profilanswer
 

gilou a écrit :

Ben et lisp et scheme avec make-array alors, hein? :D
A+,


on a pas encore atteint les doigts d'une main [:thalis]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1177607
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-08-2005 à 10:15:09  profilanswer
 

En C#, J#, VB.NET, COBOL.NET, VB, Basic, Lisp (donc), ADA
 
Doit y en avoir d'autres, mais je connais pas beaucoup de langages... (pis mon voisin non plus d'ailleurs :p)
 
Ca fait pas les doigts de deux mains, mais d'au moins une :p ;)

n°1177612
masklinn
í dag viðrar vel til loftárása
Posté le 17-08-2005 à 10:17:40  profilanswer
 

Mouais, je vais m'avouer vaincu alors [:pingouino]
 
Mais ça ne change rien au fait que c'est pas dispo en JS [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1178158
bibiphuque
Posté le 17-08-2005 à 18:01:55  profilanswer
 

C'est plutôt simple de manipuler des tableaux simples comme des tableaux mutltidimensionnels. Par exemple un tableau [10][10] est comme un tableau [100]. la case [n][m] est simplement la case [10*n+m] dans le tableau simple. C'est pas complexe à implémenter.

n°1178176
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-08-2005 à 18:09:59  profilanswer
 

Ouais, mais c'est juste que d'un point de vue "logique", [x, y] c'est mieu que [x][y].
 
Et d'un point de vue cohérence des données aussi : avec un tableau à n dimension, chaque dimension est totalement fixe. Alors qu'avec un tableau simple contenant des tableaux qui contiennent des tableaux qui... ben je peux avoir :
 
arr[0].length => 10
arr[1].length => 1
 
Et ça moi j'aime pas... Un tableau à N dimensions, c'est une matrice à N dimensions et sans trous.
 
M'enfin bon, c'est pas bien grave.
 
Sinon, en effet, la solution de l'offset est pas bête, ça permet notamment d'émuler cet aspect de dimensions de tailles fixes.
 
Par contre, avec un tableau à 5 dimensions, tu commences à pleurer sérieusement avec ce système :D

n°1178183
masklinn
í dag viðrar vel til loftárása
Posté le 17-08-2005 à 18:19:44  profilanswer
 

bibiphuque a écrit :

C'est plutôt simple de manipuler des tableaux simples comme des tableaux mutltidimensionnels. Par exemple un tableau [10][10] est comme un tableau [100]. la case [n][m] est simplement la case [10*n+m] dans le tableau simple. C'est pas complexe à implémenter.


Ca c'est les tableaux du C, théoriquement c'est bien, pratiquement c'est:
1- dangereux
2- extrèmement chiant quand il faut faire des redimensionnement
3- moisi au niveau de l'encapsulation et des séparations entre les éléments (si il n'y a pas de wrappers)

Arjuna a écrit :

Ouais, mais c'est juste que d'un point de vue "logique", [x, y] c'est mieu que [x][y].
 
Et d'un point de vue cohérence des données aussi : avec un tableau à n dimension, chaque dimension est totalement fixe. Alors qu'avec un tableau simple contenant des tableaux qui contiennent des tableaux qui... ben je peux avoir :
 
arr[0].length => 10
arr[1].length => 1
 
Et ça moi j'aime pas... Un tableau à N dimensions, c'est une matrice à N dimensions et sans trous.


 [:sisicaivrai]
chuis d'accord avec lui [:sisicaivrai]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] Bug très étrange... Comprends pas !

 

Sujets relatifs
[VB.NET] Problème étrange...Aide svpProblème dans mon code, résultat étrange
application très pointue VB ou autre...Bug JS comparaison de valeur
[VBA EXCEL] fonction très simple qui renvoie #VALEUR...[CSS] Bug IE : le positionnement entre les div et les champ <select> ?
(RESOLU) [PHP / Mysql] Requete SELECT très complexeQUel navigateur pour lire des fichiers html de tres grande taille ?
[XHTML/CSS] Pb d'affichage sur IE asser étrange :/Probleme super etrange de tableaux superposés [resolu]
Plus de sujets relatifs à : [JS] Bug très étrange... Comprends pas !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR