[Javascript] array à 2 dimensions
Résolu/Fermé
Kopros
Kopros
- 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
A voir également:
- Javascript tableau 2 dimensions
- Parcourir tableau 2 dimensions javascript - Meilleures réponses
- Tableau 2 dimensions javascript - Meilleures réponses
- Javascript - Les tableaux - Articles
- [Javascript] array à 2 dimensions ✓ - Forum - Javascript
- Javascript tableau 2 dimensions dynamique ✓ - Forum - Programmation
- [HTML / ou autre] Taille de tableau dynamique - Forum - HTML
- Parcourir tableau 2 dimensions javascript ✓ - Forum - Programmation
4 réponses
Kopros
12 mai 2010 à 21:23
- Messages postés
- 597
- Date d'inscription
- mardi 25 septembre 2007
- Statut
- Membre
- Dernière intervention
- 3 février 2020
12 mai 2010 à 21:23
En fait c'est bien moins compliqué que ce que j'avais imaginé...
J'initialise mon tableau principal :
Et quand je rajoute une ligne, je fais :
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 ! :-)
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 ! :-)
avion-f16
7 mai 2010 à 13:56
- Messages postés
- 18841
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
7 mai 2010 à 13:56
Regarde cet exemple :
membre = new Array(); membre['id'] = 1; membre['login'] = 'avion-f16'; // ...
Kopros
12 mai 2010 à 19:40
- Messages postés
- 597
- Date d'inscription
- mardi 25 septembre 2007
- Statut
- Membre
- Dernière intervention
- 3 février 2020
12 mai 2010 à 19:40
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 :
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 :
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
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
avion-f16
12 mai 2010 à 19:50
- Messages postés
- 18841
- Date d'inscription
- dimanche 17 février 2008
- Statut
- Contributeur
- Dernière intervention
- 16 août 2022
12 mai 2010 à 19:50
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 :
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
12 mai 2010 à 20:59
- Messages postés
- 597
- Date d'inscription
- mardi 25 septembre 2007
- Statut
- Membre
- Dernière intervention
- 3 février 2020
12 mai 2010 à 20:59
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.
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.