Défi

Le but de ce défi est de construire un programme JavaScript pas à pas en s'aidant de la documentation MDN.

Ce programme a pour objectif de créer une petite base de données de films.

Les films sont stockés dans un ensemble ( Set) qui est une structure de données qui ressemble aux tableaux.

Question

Trouvez la documentation des ensembles sur MDN.

Indice

Les Set sont des objets natifs.

Question

Créez un programme JavaScript et déclarez l'ensemble vide nommé movies.

Solution

1
// Empty set
2
let movies = new Set()

Question

Trouvez la documentation de la fonction permettant d'ajouter des éléments dans un ensemble.

Question

Ajoutez à l'ensemble les films suivants :

  • Matrix

  • The Artist

Solution

1
// Empty set
2
let movies = new Set()
3
4
// Add two movies
5
movies.add('Matrix')
6
movies.add('The Artist')

Question

Question

Utilisez la structure for..of pour afficher tous les films de l'ensemble movies.

On fera précéder chaque titre d'un tiret.

Solution

1
// Empty set
2
let movies = new Set()
3
4
// Add two movies
5
movies.add('Matrix')
6
movies.add('The Artist')
7
8
// Display the movies
9
for (let movie of movies) {
10
  console.log('-', movie)
11
}

Question

Trouvez la documentation de la fonction permettant de supprimer un élément d'un ensemble.

Que renvoie cette fonction ?

Solution

La fonction renvoie : « true si un élément de l'objet Set a été retiré lors de l'opération, false sinon. »

Question

Supprimer le film The Artist ; vous testerez si la suppression a réussi ou non.

Solution

1
// Empty set
2
let movies = new Set()
3
4
// Add two movies
5
movies.add('Matrix')
6
movies.add('The Artist')
7
8
// Display the movies
9
for (let movie of movies) {
10
  console.log('-', movie)
11
}
12
13
// Delete The Artist
14
if (movies.delete('The Artist')) {
15
  console.log('Suppression de The Artist effectuée.')
16
} 
17
else {
18
  console.log('Suppression de The Artist impossible, le film n\'existe pas.')
19
}

Question

Ajoutez à votre programme un menu permettant de :

  • ajouter des films

  • supprimer des films

  • sortir du menu

Solution

1
// Empty set
2
let movies = new Set()
3
4
// Add two movies
5
movies.add('Matrix')
6
movies.add('The Artist')
7
8
// Display the movies
9
for (let movie of movies) {
10
  console.log('-', movie)
11
}
12
13
// Delete The Artist
14
if (movies.delete('The Artist')) {
15
  console.log('Suppression de The Artist effectuée.')
16
} 
17
else {
18
  console.log('Suppression de The Artist impossible, le film n\'existe pas.')
19
}
20
21
let choice
22
while (choice !== 0) {
23
  // Movie list
24
  console.log()
25
  console.log('Liste des films :')
26
  for (let movie of movies) {
27
    console.log('-', movie)
28
  }
29
  // Menu
30
  console.log()
31
  console.log('Menu :')
32
  console.log('1. Ajouter un film')
33
  console.log('2. Supprimer un film')
34
  console.log('0. Quitter')
35
  choice = Number(prompt('Choix '))
36
37
  // Add or delete
38
  let movie
39
  if (choice === 1 ) {
40
    movie = prompt('Titre du film à ajouter ')
41
    movies.add(movie)
42
    console.log(movie, 'ajouté.')
43
  }
44
  else if (choice === 2) {
45
    movie = prompt('Titre du film à supprimer ')
46
    if (movies.delete(movie)) {
47
      console.log('Suppression de', movie, 'effectuée.')
48
    } 
49
    else {
50
      console.log('Suppression de', movie, 'impossible, le film n\'existe pas.')
51
    }
52
  }
53
}