Tableaux javascript
Fermé
djoulch
Messages postés
32
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
20 octobre 2003
-
21 avril 2003 à 12:50
djoulch Messages postés 32 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 20 octobre 2003 - 21 avril 2003 à 18:04
djoulch Messages postés 32 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 20 octobre 2003 - 21 avril 2003 à 18:04
Hello
Pour un tableau 2 dim, laquelle de ces attibutions est juste ?
tableau[0,0] = 120
tableau(0,0) = 120
tableau[0][0] = 120
tableau(0)(0) = 120
Parce que je trouve un peu de tout sur le net concernant les tableaux multidim et franchement, ca marche pas vraiment... Merci d'avance !
Pour un tableau 2 dim, laquelle de ces attibutions est juste ?
tableau[0,0] = 120
tableau(0,0) = 120
tableau[0][0] = 120
tableau(0)(0) = 120
Parce que je trouve un peu de tout sur le net concernant les tableaux multidim et franchement, ca marche pas vraiment... Merci d'avance !
A voir également:
- Tableaux javascript
- Telecharger javascript - Télécharger - Langages
- Tableaux croisés dynamiques - Guide
- Fusionner deux tableaux excel - Guide
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Musique / Radio / Clip
- Budget mensuel ✓ - Forum Excel
6 réponses
djoulch
Messages postés
32
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
20 octobre 2003
21 avril 2003 à 13:00
21 avril 2003 à 13:00
Et par la meme occasion, l'initialisation du tableau ci-dessous est-elle aussi correcte ?
tableau = new Array(11,3)
Pour 11 lignes et 3 colonnes.
tableau = new Array(11,3)
Pour 11 lignes et 3 colonnes.
Marden
Messages postés
1072
Date d'inscription
dimanche 11 février 2001
Statut
Membre
Dernière intervention
29 janvier 2006
210
21 avril 2003 à 15:45
21 avril 2003 à 15:45
Bonjour djoulch,
J'ai cru comprendre, à l'usage, qu'en JS, les tableaux ... n'existaient pas vraiment, en tous les cas, comme dans les autres langages. Tout a l'air de se passer, comme dans la plupart des langages interprétés, comme si les différents élements d'un "tableau" étaient des variables indépendantes (non rangées à des emplacements successifs) dont le type de contenu peut même varier d'un élément à l'autre (pas recommandé !), et même pour un même élément. En pratique, on peut difficilement utiliser un tableau comme argument d'une fonction.
Essaie aussi de retrouver les explications de notre ami Php sur le sujet, ami qui se fait plutôt rare sur ce forum !!!
Quoi qu'il en soit, on peut créer des pseudo-tableaux comme suit :
var tab = new Array() ; // déclaration d'un tableau à une dimension
avec nombre d'éléments indéterminé !
var tab1 = new Array(10) ;//avec 10 éléments, non initialisés
var tab2 = new Array("chou","carotte","navet"); // avec 3 éléments de type chaîne, initialisés.
Pour utiliser ces éléments, on peut utiliser une constante ou une variable contenant une valeur numérique :
... tab[0] ...
i = 2 ; .... tab[i] ... équivalent à tab[2]
Pour une table à 2 dimensions :
var TAB = new Array() ; // 1er niveau d'indice
TAB[0] = new Array() ;
TAB[1] = new Array() ; // ... etc
on peut aussi initialiser les valeurs de ces sous-tableaux :
var TAB = new Array() ;
TAB[0] = new Array(1,2,3) ;
TAB[1] = new Array("chou","carotte","navet",4,5,6); // ... etc
J'ai proposé un bout de code, permettant de voir comment çà fonctionne. Tu peux faire des essais en modifiant certaines valeurs d'indices, avec le risque d'erreurs, mais çà aussi, çà permet d'apprendre !!!
http://www.commentcamarche.com/forum/affich.php3?cat=0&ID=223881&page=1
J'ai cru comprendre, à l'usage, qu'en JS, les tableaux ... n'existaient pas vraiment, en tous les cas, comme dans les autres langages. Tout a l'air de se passer, comme dans la plupart des langages interprétés, comme si les différents élements d'un "tableau" étaient des variables indépendantes (non rangées à des emplacements successifs) dont le type de contenu peut même varier d'un élément à l'autre (pas recommandé !), et même pour un même élément. En pratique, on peut difficilement utiliser un tableau comme argument d'une fonction.
Essaie aussi de retrouver les explications de notre ami Php sur le sujet, ami qui se fait plutôt rare sur ce forum !!!
Quoi qu'il en soit, on peut créer des pseudo-tableaux comme suit :
var tab = new Array() ; // déclaration d'un tableau à une dimension
avec nombre d'éléments indéterminé !
var tab1 = new Array(10) ;//avec 10 éléments, non initialisés
var tab2 = new Array("chou","carotte","navet"); // avec 3 éléments de type chaîne, initialisés.
Pour utiliser ces éléments, on peut utiliser une constante ou une variable contenant une valeur numérique :
... tab[0] ...
i = 2 ; .... tab[i] ... équivalent à tab[2]
Pour une table à 2 dimensions :
var TAB = new Array() ; // 1er niveau d'indice
TAB[0] = new Array() ;
TAB[1] = new Array() ; // ... etc
on peut aussi initialiser les valeurs de ces sous-tableaux :
var TAB = new Array() ;
TAB[0] = new Array(1,2,3) ;
TAB[1] = new Array("chou","carotte","navet",4,5,6); // ... etc
J'ai proposé un bout de code, permettant de voir comment çà fonctionne. Tu peux faire des essais en modifiant certaines valeurs d'indices, avec le risque d'erreurs, mais çà aussi, çà permet d'apprendre !!!
http://www.commentcamarche.com/forum/affich.php3?cat=0&ID=223881&page=1
ipl
Messages postés
5723
Date d'inscription
lundi 8 octobre 2001
Statut
Contributeur sécurité
Dernière intervention
14 avril 2012
585
21 avril 2003 à 16:51
21 avril 2003 à 16:51
Bonjour djoulch, Marden, bonjour à tous,
Pour moi, la notation correcte est ssm[1][3]=" Rocket_88"; (avec des crochets donc)
Pour initialiser le nombre de lignes et de colonnes, je ne sais pas... je ne m'y prends pas comme çà pour initialiser... je le fais à partir des tableaux à une dimension qui correspondent aux entêtes :
/* --------------- création des tableaux ------------------ */
menup=new Array();
ssm=new Array();
adre=new Array();
/* --------------- remplissage tableau principal --------------- */
menup[0]=" Musique MID";
menup[1]=" Musique MP3";
menup[2]=" Musique WAV";
menup[3]=" Musique autres";
/* --------------- agrandissement des tableaux secondaires ----- */
TMAX=menup.length;
for (var i=0;i<TMAX;i++) ssm[i]=new Array();
for (var i=0;i<TMAX;i++) adre[i]=new Array();
/* --------------- remplissage des tableaux secondaires -------- */
ssm[0][0]=" Chatanooga Choo Choo";
ssm[0][1]=" The Girl From Ipanema";
ssm[0][2]=" I Wanna...";
ssm[0][3]=" Maria Elena";
ssm[0][4]=" Smoke Gets In Your Eyes";
ssm[1][0]=" Clementi";
ssm[1][1]=" Ghost";
etc.
HTH
@12C4 ... In medio stat virtus ...
Ipl
Pour moi, la notation correcte est ssm[1][3]=" Rocket_88"; (avec des crochets donc)
Pour initialiser le nombre de lignes et de colonnes, je ne sais pas... je ne m'y prends pas comme çà pour initialiser... je le fais à partir des tableaux à une dimension qui correspondent aux entêtes :
/* --------------- création des tableaux ------------------ */
menup=new Array();
ssm=new Array();
adre=new Array();
/* --------------- remplissage tableau principal --------------- */
menup[0]=" Musique MID";
menup[1]=" Musique MP3";
menup[2]=" Musique WAV";
menup[3]=" Musique autres";
/* --------------- agrandissement des tableaux secondaires ----- */
TMAX=menup.length;
for (var i=0;i<TMAX;i++) ssm[i]=new Array();
for (var i=0;i<TMAX;i++) adre[i]=new Array();
/* --------------- remplissage des tableaux secondaires -------- */
ssm[0][0]=" Chatanooga Choo Choo";
ssm[0][1]=" The Girl From Ipanema";
ssm[0][2]=" I Wanna...";
ssm[0][3]=" Maria Elena";
ssm[0][4]=" Smoke Gets In Your Eyes";
ssm[1][0]=" Clementi";
ssm[1][1]=" Ghost";
etc.
HTH
@12C4 ... In medio stat virtus ...
Ipl
Marden
Messages postés
1072
Date d'inscription
dimanche 11 février 2001
Statut
Membre
Dernière intervention
29 janvier 2006
210
21 avril 2003 à 17:31
21 avril 2003 à 17:31
Je ne pense pas qu'il y ait d'incompatibilité dans nos propos. Personnellement, j'utilise souvent la forme suivante :
var tableau = new Array() ;
var compteur = 0 ;
addLine(val00, val01, val02, ...) ;
addLine(val10, val11, val12, ...) ;
addLine(val20, val21, val22, ...) ;
.............................
// avec la fonction :
function addLine (v0,v1,v2,...) {
tableau[compteur++] = new Array(v0,v1,v2,...) ,
}
// ou la variante :
function addLine () {
tableau[compteur] = new Array() ;
for ( i=0; i< arguments.length ; i++) {
tableau[compteur][i] = arguments[i]
}
compteur++ ;
}
[à noter que "tableau" et "compteur" sont des variables globales]
var tableau = new Array() ;
var compteur = 0 ;
addLine(val00, val01, val02, ...) ;
addLine(val10, val11, val12, ...) ;
addLine(val20, val21, val22, ...) ;
.............................
// avec la fonction :
function addLine (v0,v1,v2,...) {
tableau[compteur++] = new Array(v0,v1,v2,...) ,
}
// ou la variante :
function addLine () {
tableau[compteur] = new Array() ;
for ( i=0; i< arguments.length ; i++) {
tableau[compteur][i] = arguments[i]
}
compteur++ ;
}
[à noter que "tableau" et "compteur" sont des variables globales]
djoulch
Messages postés
32
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
20 octobre 2003
21 avril 2003 à 17:42
21 avril 2003 à 17:42
Mais dans les indices, tu peux mettre sans autre des variables plutot que des chiffres, style
tableau [var1][var2]
au moment d'utiliser le tableau ?
tableau [var1][var2]
au moment d'utiliser le tableau ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
djoulch
Messages postés
32
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
20 octobre 2003
21 avril 2003 à 18:01
21 avril 2003 à 18:01
Arf, j'deviens franc fou, y'a rien qui fonctionne... Si quelqu'un peut tester mon code si dessous pour trouver l'erreur, je lui en serais monstre reconnaissant... Le but étant que dans la case prix doit s'afficher le prix correspondant dans un des deux tableaux, déterminé par les switchs...
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="75%" border="0">
<tr>
<td>Nom skieur</td>
<td>Prénom skieur</td>
<td>Année naissance</td>
<td>Type abonnement</td>
<td>Période</td>
<td>Début abonnement</td>
<td>Fin abonnement</td>
<td>Nombre de jours</td>
<td>Prix</td>
</tr>
<tr>
<td>
<INPUT TYPE=Text SIZE=12 NAME="nomSkieur1">
</td>
<td>
<INPUT TYPE=Text SIZE=12 NAME="prenomSkieur1">
</td>
<td>
<INPUT TYPE=Text SIZE=4 NAME="naissanceSkieur1">
</td>
<td>
<SELECT NAME="abonnement1" ONEKEYUP="prix();">
<OPTION VALUE=0>Adulte</OPTION>
<OPTION VALUE=1>Etudiant</OPTION>
<OPTION VALUE=2>Enfant</OPTION>
<OPTION VALUE=3>Retraité</OPTION>
</SELECT>
</td>
<td>
<SELECT NAME="periode1" ONEKEYUP="prix();">
<OPTION VALUE=0>1</OPTION>
<OPTION VALUE=1>2</OPTION>
<OPTION VALUE=2>3</OPTION>
<OPTION VALUE=3>4</OPTION>
<OPTION VALUE=4>5</OPTION>
</SELECT>
</td>
<td>
<INPUT TYPE=Text SIZE=11 NAME="debutSkieur1">
</td>
<td>
<INPUT TYPE=Text SIZE=11 NAME="finSkieur1">
</td>
<td>
<SELECT NAME="nbreJour1" ONEKEYUP="prix();">
<OPTION VALUE=0>4</OPTION>
<OPTION VALUE=1>5</OPTION>
<OPTION VALUE=2>6</OPTION>
<OPTION VALUE=3>7</OPTION>
<OPTION VALUE=4>8</OPTION>
<OPTION VALUE=5>9</OPTION>
<OPTION VALUE=6>10</OPTION>
<OPTION VALUE=7>11</OPTION>
<OPTION VALUE=8>12</OPTION>
<OPTION VALUE=9>13</OPTION>
<OPTION VALUE=10>14</OPTION>
</SELECT>
</td>
<td>
<INPUT TYPE=Text SIZE=7 NAME="prix1" READONLY>
</td>
</table>
<SCRIPT LANGUAGE="javascript1.2" type="text/JavaScript" >
function prix()
{
var typeAbo1 = document.formulaire.abonnement1.value;
var nbre1 = document.formulaire.nbreJour1.value;
var periode1 = document.formulaire.periode1.value;
var t1;
tableauHaute = new Array();
tableauHaute [0][0] = 145;
tableauHaute [1][0] = 177;
tableauHaute [2][0] = 199;
tableauHaute [3][0] = 209;
tableauHaute [4][0] = 219;
tableauHaute [5][0] = 259;
tableauHaute [6][0] = 278;
tableauHaute [7][0] = 296;
tableauHaute [8][0] = 313;
tableauHaute [9][0] = 330;
tableauHaute [10][0] = 346;
tableauHaute [0][1] = 123;
tableauHaute [1][1] = 150;
tableauHaute [2][1] = 169;
tableauHaute [3][1] = 179;
tableauHaute [4][1] = 189;
tableauHaute [5][1] = 220;
tableauHaute [6][1] = 236;
tableauHaute [7][1] = 252;
tableauHaute [8][1] = 266;
tableauHaute [9][1] = 281;
tableauHaute [10][1] = 294;
tableauHaute [0][2] = 87;
tableauHaute [1][2] = 106;
tableauHaute [2][2] = 119;
tableauHaute [3][2] = 129;
tableauHaute [4][2] = 139;
tableauHaute [5][2] = 155;
tableauHaute [6][2] = 167;
tableauHaute [7][2] = 178;
tableauHaute [8][2] = 188;
tableauHaute [9][2] = 198;
tableauHaute [10][2] = 208;
tableauBasse = new Array();
tableauBasse [0][0] = 116;
tableauBasse [1][0] = 142;
tableauBasse [2][0] = 159;
tableauBasse [3][0] = 169;
tableauBasse [4][0] = 179;
tableauBasse [5][0] = 207;
tableauBasse [6][0] = 222;
tableauBasse [7][0] = 237;
tableauBasse [8][0] = 250;
tableauBasse [9][0] = 264;
tableauBasse [10][0] = 277;
tableauBasse [0][1] = 98;
tableauBasse [1][1] = 120;
tableauBasse [2][1] = 135;
tableauBasse [3][1] = 145;
tableauBasse [4][1] = 155;
tableauBasse [5][1] = 176;
tableauBasse [6][1] = 189;
tableauBasse [7][1] = 202;
tableauBasse [8][1] = 213;
tableauBasse [9][1] = 225;
tableauBasse [10][1] = 235;
tableauBasse [0][2] = 70;
tableauBasse [1][2] = 85;
tableauBasse [2][2] = 95;
tableauBasse [3][2] = 105;
tableauBasse [4][2] = 115;
tableauBasse [5][2] = 124;
tableauBasse [6][2] = 133;
tableauBasse [7][2] = 142;
tableauBasse [8][2] = 150;
tableauBasse [9][2] = 158;
tableauBasse [10][2] = 166;
var abo1;
switch (typeAbo1)
{
case 0:
abo1 = 0;
break;
case 1:
case 3:
abo1 = 1;
break;
case 2:
abo1 = 2;
break;
}
switch (periode1)
{
case 0:
case 2:
case 4:
t1 = tableauHaute[nbre1][abo1];
break;
case 1:
case 3:
t1 = tableauBasse[nbre1][abo1];
break;
}
document.formulaire.prix1.value=t1;
</SCRIPT>
</body>
</html>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="75%" border="0">
<tr>
<td>Nom skieur</td>
<td>Prénom skieur</td>
<td>Année naissance</td>
<td>Type abonnement</td>
<td>Période</td>
<td>Début abonnement</td>
<td>Fin abonnement</td>
<td>Nombre de jours</td>
<td>Prix</td>
</tr>
<tr>
<td>
<INPUT TYPE=Text SIZE=12 NAME="nomSkieur1">
</td>
<td>
<INPUT TYPE=Text SIZE=12 NAME="prenomSkieur1">
</td>
<td>
<INPUT TYPE=Text SIZE=4 NAME="naissanceSkieur1">
</td>
<td>
<SELECT NAME="abonnement1" ONEKEYUP="prix();">
<OPTION VALUE=0>Adulte</OPTION>
<OPTION VALUE=1>Etudiant</OPTION>
<OPTION VALUE=2>Enfant</OPTION>
<OPTION VALUE=3>Retraité</OPTION>
</SELECT>
</td>
<td>
<SELECT NAME="periode1" ONEKEYUP="prix();">
<OPTION VALUE=0>1</OPTION>
<OPTION VALUE=1>2</OPTION>
<OPTION VALUE=2>3</OPTION>
<OPTION VALUE=3>4</OPTION>
<OPTION VALUE=4>5</OPTION>
</SELECT>
</td>
<td>
<INPUT TYPE=Text SIZE=11 NAME="debutSkieur1">
</td>
<td>
<INPUT TYPE=Text SIZE=11 NAME="finSkieur1">
</td>
<td>
<SELECT NAME="nbreJour1" ONEKEYUP="prix();">
<OPTION VALUE=0>4</OPTION>
<OPTION VALUE=1>5</OPTION>
<OPTION VALUE=2>6</OPTION>
<OPTION VALUE=3>7</OPTION>
<OPTION VALUE=4>8</OPTION>
<OPTION VALUE=5>9</OPTION>
<OPTION VALUE=6>10</OPTION>
<OPTION VALUE=7>11</OPTION>
<OPTION VALUE=8>12</OPTION>
<OPTION VALUE=9>13</OPTION>
<OPTION VALUE=10>14</OPTION>
</SELECT>
</td>
<td>
<INPUT TYPE=Text SIZE=7 NAME="prix1" READONLY>
</td>
</table>
<SCRIPT LANGUAGE="javascript1.2" type="text/JavaScript" >
function prix()
{
var typeAbo1 = document.formulaire.abonnement1.value;
var nbre1 = document.formulaire.nbreJour1.value;
var periode1 = document.formulaire.periode1.value;
var t1;
tableauHaute = new Array();
tableauHaute [0][0] = 145;
tableauHaute [1][0] = 177;
tableauHaute [2][0] = 199;
tableauHaute [3][0] = 209;
tableauHaute [4][0] = 219;
tableauHaute [5][0] = 259;
tableauHaute [6][0] = 278;
tableauHaute [7][0] = 296;
tableauHaute [8][0] = 313;
tableauHaute [9][0] = 330;
tableauHaute [10][0] = 346;
tableauHaute [0][1] = 123;
tableauHaute [1][1] = 150;
tableauHaute [2][1] = 169;
tableauHaute [3][1] = 179;
tableauHaute [4][1] = 189;
tableauHaute [5][1] = 220;
tableauHaute [6][1] = 236;
tableauHaute [7][1] = 252;
tableauHaute [8][1] = 266;
tableauHaute [9][1] = 281;
tableauHaute [10][1] = 294;
tableauHaute [0][2] = 87;
tableauHaute [1][2] = 106;
tableauHaute [2][2] = 119;
tableauHaute [3][2] = 129;
tableauHaute [4][2] = 139;
tableauHaute [5][2] = 155;
tableauHaute [6][2] = 167;
tableauHaute [7][2] = 178;
tableauHaute [8][2] = 188;
tableauHaute [9][2] = 198;
tableauHaute [10][2] = 208;
tableauBasse = new Array();
tableauBasse [0][0] = 116;
tableauBasse [1][0] = 142;
tableauBasse [2][0] = 159;
tableauBasse [3][0] = 169;
tableauBasse [4][0] = 179;
tableauBasse [5][0] = 207;
tableauBasse [6][0] = 222;
tableauBasse [7][0] = 237;
tableauBasse [8][0] = 250;
tableauBasse [9][0] = 264;
tableauBasse [10][0] = 277;
tableauBasse [0][1] = 98;
tableauBasse [1][1] = 120;
tableauBasse [2][1] = 135;
tableauBasse [3][1] = 145;
tableauBasse [4][1] = 155;
tableauBasse [5][1] = 176;
tableauBasse [6][1] = 189;
tableauBasse [7][1] = 202;
tableauBasse [8][1] = 213;
tableauBasse [9][1] = 225;
tableauBasse [10][1] = 235;
tableauBasse [0][2] = 70;
tableauBasse [1][2] = 85;
tableauBasse [2][2] = 95;
tableauBasse [3][2] = 105;
tableauBasse [4][2] = 115;
tableauBasse [5][2] = 124;
tableauBasse [6][2] = 133;
tableauBasse [7][2] = 142;
tableauBasse [8][2] = 150;
tableauBasse [9][2] = 158;
tableauBasse [10][2] = 166;
var abo1;
switch (typeAbo1)
{
case 0:
abo1 = 0;
break;
case 1:
case 3:
abo1 = 1;
break;
case 2:
abo1 = 2;
break;
}
switch (periode1)
{
case 0:
case 2:
case 4:
t1 = tableauHaute[nbre1][abo1];
break;
case 1:
case 3:
t1 = tableauBasse[nbre1][abo1];
break;
}
document.formulaire.prix1.value=t1;
</SCRIPT>
</body>
</html>
djoulch
Messages postés
32
Date d'inscription
jeudi 20 mars 2003
Statut
Membre
Dernière intervention
20 octobre 2003
21 avril 2003 à 18:04
21 avril 2003 à 18:04
Juste oublié deux chose dans le code
<FORM Name="formulaire" Method="post" Action="formulaire.php3">
</FORM>
<FORM Name="formulaire" Method="post" Action="formulaire.php3">
</FORM>