Appliquer la notion

Question

Un emploi du temps vous est transmis sous la forme de deux listes :

  • Une première liste contient les matières,

  • Une seconde contient les horaires de chaque matière.

Chaque matière de la première liste va de pair avec l'horaire de la seconde liste qui se trouve au même index : la première matière correspond au premier horaire, la seconde matière au deuxième horaire, etc.

1
/** JavaScript */
2
const subjects = ['Maths', 'Anglais', 'Sport', 'Sciences économiques']
3
const schedule = ['8h30', '10h30', '14h00', '17h00']

Question

Compléter le programme pour afficher une à une les matières associées à leur horaire.

Indice

Un seul index est nécessaire pour accéder à l'élément de subjects et de schedule.

Solution

1
/** JavaScript */
2
const subjects = ['Maths', 'Anglais', 'Sport', 'Sciences économiques']
3
const schedule = ['8h30', '10h30', '14h00', '17h00']
4
5
for(let i = 0; i < subjects.length; i++) {
6
  console.log(subjects[i], schedule[i])
7
}

Question

Une erreur s'est glissée dans l'emploi du temps et les matières sont en fait dans l'ordre inverse. Modifier la boucle pour afficher les matières dans l'ordre inverse.

Indice

On peut accéder à l'élément d'index opposé en soustrayant la valeur du compteur au dernier index du tableau, soit tableau.length - 1 - compteur.

Solution

1
/** JavaScript */
2
const subjects = ['Maths', 'Anglais', 'Sport', 'Sciences économiques']
3
const schedule = ['8h30', '10h30', '14h00', '17h00']
4
5
for(let i = 0; i < subjects.length; i++) {
6
  console.log(subjects[subjects.length - 1 - i], schedule[i])
7
}

On aurait pu aussi partir de i = subjects.length - 1 et décrémenter le compteur jusqu'à 0.