Bonjour à tous,
Voila j'ai besoin de mettre en place un tableau multidimensionnel, mais je dois mal l'instancier puisque j'ai des problèmes sur la valeur de la propriété .length
nb : Mon tableau est à trois dimensions, voici son instanciation
Comme les dimensions sont variables, je ne peux lui donner de tailles fixes tout de suite (en plus je ne sais pas si cela se fait en JS)
Code : Sélectionner tout - Visualiser dans une fenêtre à part var tabAssDom = new Array ()
un code étant plus explicite, voici la procédure d'insertion dans ce tableau :
Je pense que cette partie est correct, le problème est que si je test la propriété length de n'importe laquelle des dimensions
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (!tabAssDom[id1]) tabAssDom[id1] = new Array (); if (!tabAssDom[id1][id2]) tabAssDom[id1][id2] = new Array (); tabAssDom[id1][id2][id3] = "1";
il me retourne n'importe quoi (en règle général 30)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tabAssDom[id1][id2][id3].length ou encore tabAssDom.length![]()
Malgré cela l'exploitation du tableau via for...in marche correctement.
Le problème se situe maintenant sur la procédure de suppression d'un élément, vous l'aurez compris ce tableau représentant un arbre, lors de cette suppression si un noeud disparait je dois supprimer la branche entière
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 for (var id1in tabAssDom) { ... for (var DGId in tabAssDom[NId]) { ... for (var DTId in tabAssDom[NId][DGId]) { ... } } }
voici la procédure associée, qui ne marche pas, vu que la propriété .length renvoi n'importe quoi
J'ai été un peu long, mais je pense que tout est clair
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 tabAssDom[id1][id2].splice(id3,1); if (!tabAssDom[id1][id2].length) { tabAssDom[id1].splice (id2,1); if (!tabAssDom[id1].length) { tabAssDom.splice(id1,1); } }![]()
Have you some idea ?![]()
Partager