OVH Cloud OVH Cloud

Parcourir un tableau

7 réponses
Avatar
Jean-Paul Witz
Bonjour
La solution à mon pb est sûrement simple. Mais je ne la vois pas.
Voilà: Soit le tableau ci-dessous:

var tab=new Array;
tab["Lundi"]="semaine";
tab["Mardi"]="semaine";
tab["Mercredi"]="enfant";
tab["Jeudi"]="semaine";
tab["Vendredi"]="semaine";
tab["Samedi"]="weekend";
tab["Dimanche"]="weekend";

J'aimerais parcourir ce tableau et tester chaque ligne.
J'ai utilisé sans succès for() et while()avec la propriété tab.length

QQ1 aurait-il une idée comment faire?

Merci

JPW

7 réponses

Avatar
ASM
Bonjour
La solution à mon pb est sûrement simple. Mais je ne la vois pas.
Voilà: Soit le tableau ci-dessous:

var tab=new Array;
tab["Lundi"]="semaine";
tab["Mardi"]="semaine";
tab["Mercredi"]="enfant";
tab["Jeudi"]="semaine";
tab["Vendredi"]="semaine";
tab["Samedi"]="weekend";
tab["Dimanche"]="weekend";

J'aimerais parcourir ce tableau et tester chaque ligne.


quoi toi vouloir tester ?

for(var i=0; i<tab.length; i++)
if(tab[i] == 'semaine') document.write(tab[i]+'<br>');

-->
semaine
semaine
semaine
semaine
semaine
semaine

J'ai utilisé sans succès for() et while()avec la propriété tab.length

QQ1 aurait-il une idée comment faire?


// soit le tableau :
var tab = new Array('Dimanche','Lundi,'Mardi','Mercredi',Jeudi',
'Vendredi','Samedi');

// ecrire tous les jours et donner leur genre
for(var i=0; i<tab.length; i++)
if(tab[i] == 'Samedi' || tab[i] == 'Dimanche')
document.write('Week-End : '+tab[i]+'<br>');
else
document.write('Semaine : '+tab[i]+'<br>');

// sortir le jour d'aujourd'hui et son genre
var date = new Date();
var jour = date.getDay();
var genre = (jour==0 || jour==6)? 'Week-End' : 'Semaine';
document.write('Nous sommes '+tab[jour)+' et en '+genre);

tuto sur les dates en JS
http://stephane.moriaux.perso.orange.fr/internet/web_html/java/dates/

--
ASM

Avatar
Jean-Paul Witz

Bonjour
La solution à mon pb est sûrement simple. Mais je ne la vois pas.
Voilà: Soit le tableau ci-dessous:

var tab=new Array;
tab["Lundi"]="semaine";
tab["Mardi"]="semaine";
tab["Mercredi"]="enfant";
tab["Jeudi"]="semaine";
tab["Vendredi"]="semaine";
tab["Samedi"]="weekend";
tab["Dimanche"]="weekend";

J'aimerais parcourir ce tableau et tester chaque ligne.



quoi toi vouloir tester ?

for(var i=0; i<tab.length; i++)
if(tab[i] == 'semaine') document.write(tab[i]+'<br>');


De cette façon, i a une valeur numérique (de 0 à 7). J'aurai
tab[0],tab[1],...,tab[7], mais pas tab["lundi"], et...
Dans mon cas tab[0],tab[1],etc... n'existent pas!
Me trompe-je?
A+
JPW


Avatar
ASM

var tab=new Array;
tab["Lundi"]="semaine";
tab["Mardi"]="semaine";
tab["Mercredi"]="enfant";
tab["Jeudi"]="semaine";
tab["Vendredi"]="semaine";
tab["Samedi"]="weekend";
tab["Dimanche"]="weekend";

J'aimerais parcourir ce tableau et tester chaque ligne.


for(var i=0; i<tab.length; i++)
if(tab[i] == 'semaine') document.write(tab[i]+'<br>');


De cette façon, i a une valeur numérique (de 0 à 7). J'aurai
tab[0],tab[1],...,tab[7], mais pas tab["lundi"], et...
Dans mon cas tab[0],tab[1],etc... n'existent pas!
Me trompe-je?


Non ... (sauf i valeur de 0 à 6)


var tab=new Array(7);
tab[0] = new Array(); tab[0][0] = "Lundi"; tab[0][1]="semaine";
tab[1] = new Array(); tab[1][0] = "Mardi"; tab[1][1]="semaine";
tab[2] = new Array(); tab[2][0] = "Mercredi"; tab[2][1]="enfant";
tab[3] = new Array(); tab[3][0] = "Jeudi"; tab[3][1]="semaine";
tab[4] = new Array(); tab[4][0] = "Vendredi"; tab[4][1]="semaine";
tab[5] = new Array(); tab[5][0] = "Samedi"; tab[5][1]="weekend";
tab[6] = new Array(); tab[6][0] = "Dimanche"; tab[6][1]="weekend";


for(var i=0; i<tab.length; i++)
if(tab[i][1] == 'semaine') document.writeln(':: '+tab[i][0]+'<br>');

--
ASM



Avatar
Florian Sinatra
*Jean-Paul Witz* @ 04/10/2006 16:55 :
J'aimerais parcourir ce tableau et tester chaque ligne.
J'ai utilisé sans succès for() et while()avec la propriété tab.length

QQ1 aurait-il une idée comment faire?


Un tableau est un objet, et pour parcourir les propriétés d'un objet on
utilise le mot-clef *in* :

for(var i in tab)
document.write('tab["' + i + '"]="' + tab[i] + '";n') ;

affiche :
tab["Lundi"]="semaine";
tab["Mardi"]="semaine";
tab["Mercredi"]="enfant";
tab["Jeudi"]="semaine";
tab["Vendredi"]="semaine";
tab["Samedi"]="weekend";
tab["Dimanche"]="weekend";

<http://toutjavascript.com/reference/reference.php?ref=in&parent!0>

;-)

Avatar
YD
var tab=new Array;
tab["Lundi"]="semaine";
tab["Mardi"]="semaine";
tab["Mercredi"]="enfant";
tab["Jeudi"]="semaine";
tab["Vendredi"]="semaine";
tab["Samedi"]="weekend";
tab["Dimanche"]="weekend";

J'aimerais parcourir ce tableau et tester chaque ligne.
for(var i=0; i<tab.length; i++)

if(tab[i] == 'semaine') document.write(tab[i]+'<br>');
De cette façon, i a une valeur numérique (de 0 à 7). J'aurai

tab[0],tab[1],...,tab[7], mais pas tab["lundi"], et...
Dans mon cas tab[0],tab[1],etc... n'existent pas!
Me trompe-je?


Non ... (sauf i valeur de 0 à 6)


Ou plus simple, car on n'a, a priori, pas besoin d'utiliser un
Array dans ce cas, un simple Object suffira :

var jour;
var semaine=new Object();
semaine.Lundi="semaine"; // ou semaine["Lundi"] c'est équivalent
semaine.Mardi="semaine"; // etc. etc.

for (jour in semaine)
alert semaine[jour];

Attention il n'y a pas de propriété length à un objet, mais
on peut facilement retrouver son nombre de propriétés si
besoin -- enfin une semaine comptant en général sept jours...

--
Y.D.




Avatar
YD

for (jour in semaine)
alert semaine[jour];


Bien entendu

alert (semaine[jour]);

--
Y.D.

Avatar
Dr John Stockton
JRS: En <eg0i1k$o0b$, du Mercredi, 4 Oct 2006 16:55:52
remote, en news:fr.comp.lang.javascript, Jean-Paul Witz <jean-no-

La solution à mon pb est sûrement simple. Mais je ne la vois pas.
Voilà: Soit le tableau ci-dessous:

var tab=new Array;
tab["Lundi"]="semaine";
tab["Mardi"]="semaine";
tab["Mercredi"]="enfant";
tab["Jeudi"]="semaine";
tab["Vendredi"]="semaine";
tab["Samedi"]="weekend";
tab["Dimanche"]="weekend";

J'aimerais parcourir ce tableau et tester chaque ligne.
J'ai utilisé sans succès for() et while()avec la propriété tab.length

QQ1 aurait-il une idée comment faire?


Essayez :-

var tab=new Array;
tab["Lundi"]="semaine";
tab["Mardi"]="semaine";
tab["Mercredi"]="enfant";
tab["Jeudi"]="semaine";
tab["Vendredi"]="semaine";
tab["Samedi"]="weekend";
tab["Dimanche"]="weekend";

for (var i in tab)
document.write('i : ', i, ' &#160; &#160; tab[i] : ', tab[i], '<br>');


It's a good idea to read news:comp.lang.javascript and its FAQ. See below.
--
© John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4 ©
<URL:http://www.jibbering.com/faq/>? JL/RC: FAQ of news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.