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
// Empty set
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
// Empty set
let movies = new Set()
// Add two movies
movies.add('Matrix')
movies.add('The Artist')
Question
Trouvez la documentation de la boucle de type for..of
.
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
// Empty set
let movies = new Set()
// Add two movies
movies.add('Matrix')
movies.add('The Artist')
// Display the movies
for (let movie of movies) {
console.log('-', movie)
}
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
// Empty set
let movies = new Set()
// Add two movies
movies.add('Matrix')
movies.add('The Artist')
// Display the movies
for (let movie of movies) {
console.log('-', movie)
}
// Delete The Artist
if (movies.delete('The Artist')) {
console.log('Suppression de The Artist effectuée.')
}
else {
console.log('Suppression de The Artist impossible, le film n\'existe pas.')
}
Question
Ajoutez à votre programme un menu permettant de :
ajouter des films
supprimer des films
sortir du menu
Solution
// Empty set
let movies = new Set()
// Add two movies
movies.add('Matrix')
movies.add('The Artist')
// Display the movies
for (let movie of movies) {
console.log('-', movie)
}
// Delete The Artist
if (movies.delete('The Artist')) {
console.log('Suppression de The Artist effectuée.')
}
else {
console.log('Suppression de The Artist impossible, le film n\'existe pas.')
}
let choice
while (choice !== 0) {
// Movie list
console.log()
console.log('Liste des films :')
for (let movie of movies) {
console.log('-', movie)
}
// Menu
console.log()
console.log('Menu :')
console.log('1. Ajouter un film')
console.log('2. Supprimer un film')
console.log('0. Quitter')
choice = Number(prompt('Choix '))
// Add or delete
let movie
if (choice === 1 ) {
movie = prompt('Titre du film à ajouter ')
movies.add(movie)
console.log(movie, 'ajouté.')
}
else if (choice === 2) {
movie = prompt('Titre du film à supprimer ')
if (movies.delete(movie)) {
console.log('Suppression de', movie, 'effectuée.')
}
else {
console.log('Suppression de', movie, 'impossible, le film n\'existe pas.')
}
}
}