[Javascript] array à 2 dimensions [Résolu/Fermé]

Signaler
Messages postés
597
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
3 février 2020
-
Kopros
Messages postés
597
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
3 février 2020
-
Salut à tous

Comment déclarer en Javascript un array en 2 dimensions sachant que je ne connais pas d'avance la taille qu'il va prendre ?

Merci
A voir également:

4 réponses

Messages postés
597
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
3 février 2020
79
En fait c'est bien moins compliqué que ce que j'avais imaginé...

J'initialise mon tableau principal :
var ligne1 = new Array();
var ligne2 = new Array();
var virtuaTab = new Array(ligne1,ligne2);


Et quand je rajoute une ligne, je fais :
virtuaTab[virtuaTab.length]=new Array();

et pour les colonnes j'ai pas besoin de faire grand chose, si ce n'est de les renseigner, étant donné qu'un array simple est automatiquement dynamique (elle est pas belle la vie ? ^^).

Merci F16 pour m'avoir donné la réponse ! C'est tout à fait exploitable ! :-)
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 73267 internautes nous ont dit merci ce mois-ci

Messages postés
18392
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 mars 2020
4 155
Regarde cet exemple :
membre = new Array();
membre['id'] = 1;
membre['login'] = 'avion-f16';
// ...
Messages postés
597
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
3 février 2020
79
Désolé pour ma réponse super tardive...

J'ai fait quelques tests et j'y arrive pas. J'ai plusieurs questions...
Le mieux c'est que je montre des bouts de code :
var ligne = new Array();
var colonne = new Array();
var test = new Array(ligne,colonne);
ligne[0] = "1";
ligne[1] = "2";
ligne[2] = "3";
colonne[0] = "4";
colonne[1] = "5";

alert(test[0][0]);//Résultat : 1
alert(test[0][1]);//Résultat : 2
alert(test[0][2]);//Résultat : 3
alert(test[1][0]);//Résultat : 4
alert(test[1][1]);//Résultat : 5


Dans ce cas, la question c'est : comment je fais pour dire par exemple "je veux mettre 42 dans la 'case' ligne 10 colonne 23" ?
Et dans l'autre sens, comment je fais pour récupérer la valeur ligne 36 colonne 72 ?


J'ai aussi essayer de faire une autre technique :
var aNums = new Array(2,2);
aNums[0,0] = "1";
aNums[0,1] = "2";
aNums[1,0] = "3";
aNums[1,1] = "4";

alert(aNoms[0,0]); //resultat : 4 GNÉ ????????


Comme vous pouvez voir le résultat c'est 4 au lieu de 1. Des fois ça marche et des fois non, ça donne la dernière valeur de l'array ou l'avant dernière au lieu de ce que je demande. Je comprends vraiment pas pourquoi, pourtant je fais comme dans les tutos...
Comment faut-il s'y prendre pour que ça marche ?

Voilà je cherche à connaître l'une de ces 2 techniques, si j'y arrive à une j'ai pas besoin de l'autre. Enfin, je préfèrerais la 2e parce qu'elle me semble moins compliquée que la 1ere, si elle marche.


Merci
Messages postés
18392
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
31 mars 2020
4 155
Si c'est pour un tableau (ne pas confondre les tableaux de présentation avec les array) :
http://www.siteduzero.com/tutoriel-3-209615-maitriser-les-tableaux-html-avec-javascript.html

Tu peux aussi faire comme ceci :
tableau = Array(
    Array('Ligne 1 - Colonne 1','Ligne 1 - Colonne 2'),
    Array('Ligne 2 - Colonne 1','Ligne 2 - Colonne 2'),
    // ...
);
Ou aussi en JSON.
Kopros
Messages postés
597
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
3 février 2020
79
Il s'agit bien d'un array, pas de tableau de présentation ;-)
Mon but est de faire un questionnaire à questions fermées sous forme de schéma un peu comme un algo, avec des losanges pour les alternatives. Il y a donc des connecteurs entre les questions.
En fait j'ai un pb d'affichage : des questions peuvent se coller visuellement alors que pour la machine elles ne sont pas du tout connectées. Du coup, je veux décaler les éléments pour que visuellement, on ne les voit pas en face des mauvaises questions.
Pour faire ça j'ai besoin de savoir où sont placés mes éléments les uns par rapport aux autres (chaque élément à un id). Donc je voudrais faire un tableau en 2d pour savoir si telle ligne telle colonne il y a l'id d'un élément, et si c'est le cas je décale.
Et pour savoir d'où je pars j'ai aussi besoin de pouvoir récupérer la ligne et la colonne à partir d'un id.
Voilà je sais pas si je suis clair... Ce qui m'embête c'est que je ne peux pas connaître à l'avance combien il y aura de lignes et de colonnes au total.

Si je comprends bien ton exemple, il me faut autant d'array qu'il y a de lignes, et chacun contient la valeur selon la colonne... Ca me paraît logique mais très compliqué à mettre à jour. Je vais voir si j'y arrive.


En tout cas pour le JSON c'est vraiment un format que je ne connais pas et je suis un peu pris par le temps, ça va faire trop just pour l'apprendre.