Exercice 14 - Gestion d'un catalogue de livres
Initialisation et remise
- Créez un dépôt nommé dw_ex14_object sur Github
- Clonez le dépôt sur votre portable et réalisez l'exercice
- Vous devez créer un fichier JavaScript qui contiendra le script et le relier à une page html.
- Une fois terminé, créez une version de votre exercice (add, commit) et poussez le (push) sur Github.
- Remettez le devoir Teams avec l'url vers votre dépot.
Énoncé
- Copiez le tableau suivant dans votre fichier de script.
- Réalisez ensuite les étapes suivantes.
Tableau de livres
const livres = [
{ titre: "1984", auteur: "George Orwell", annee: 1949, disponible: true },
{ titre: "Le Seigneur des anneaux", auteur: "J.R.R. Tolkien", annee: 1954, disponible: false },
{ titre: "Dune", auteur: "Frank Herbert", annee: 1965, disponible: true },
{ titre: "Fahrenheit 451", auteur: "Ray Bradbury", annee: 1953, disponible: true },
{ titre: "Le messie de Dune", auteur: "Frank Herbert", annee: 1969, disponible: true },
];
Astuce
Si vous avez besoin d'aide avec les objets : Le Tutoriel JavaScript Moderne - Arrays
Partie 1 – Lecture et affichage
- Affichez dans la console le titre du premier livre du tableau.
- Affichez le nombre total de livres dans la collection.
- Utilisez
console.table()pour afficher le tableau de livres - Maintenant créez une boucle qui affiche le titre et l’auteur de chaque livre.
Partie 2 – Manipulation des données
- Ajoutez un nouveau livre à la fin du tableau :
{ titre: "Neuromancien", auteur: "William Gibson", annee: 1984, disponible: false }
- Changez la disponibilité du livre "Le Seigneur des anneaux" à true. Vous devez parcourir le tableau de livres pour le retrouver et changer la propriété
disponible. - Supprimez le livre "Fahrenheit 451" du tableau. Comme le livre n'est pas au début ni à la fin du tableau, vous ne pouvez utiliser les méthodes
.pop()et.shift(). Commencez par retrouver son index avec.findIndex(). Ensuite, si vous avez un résultat, utilisez la méthode.splice()
Partie 3 – Recherche et filtrage
- Créez un nouveau tableau contenant uniquement les livres disponibles.
- Affichez le titre des livres disponibles publiés avant 1960.
- Cherchez s’il existe des livres de l’auteur "Frank Herbert" et affichez un message approprié :
- "Livres trouvés : Dune, Le messie de Dune"
- ou "Aucun livre de Frank Herbert trouvé."
Partie 4 – Fonction d'affichage du catalogue
-
Écrivez une fonction afficherCatalogue(livres) qui :
- Trie les livres par année de publication avec la méthode
.sort(). - Utilisez la méthode
.map()pour créer un nouveau tableau. - Chaque item de ce tableau sera uniquement un string formaté comme ceci :
=> titre (auteur) - [Disponible/Non disponible] - Affiche le tableau comme ceci :
- Trie les livres par année de publication avec la méthode
-
Lancez ensuite la fonction pour afficher le résultat
Astuce
Pour lancer une fonction, vous n'avez qu'à inscrire son nom et ajouter les paramêtres s'il y en a
Partie 5 – Lancer une recherche depuis un bouton
- Créez une fonction
rechercherLivre()qui va permettre de rechercher les livres d'un auteur. (Vous pouvez copier le code que vous avez créé à la partie 3) - L'usager devra entrer le nom de l'auteur. Pour ce faire utilisez la fonction
prompt()comme ceci:
- Ensuite affichez le résultat de la recherche avec la fonction
alert() - Finalement ajoutez un bouton dans votre page html avec l'attribut
onclick="rechercherLivre()"
- Testez votre fonction en cliquant sur le bouton.