Bonjour,
Surement un post de noob de JS, à force je commence à avoir honte. Mais je suis restée bloqué toute la journée dessus. C'est l'exercice tout bête de fin de session sur open ClassRoom, et sur le forum d'OC , visiblement c'est un probleme hyper récurrent (un pb de noob donc). Mais qui n'a pas trouver de solution (ou les modos les ont enelvés... peut importe).
La consigne est sommes toute assez simple, et très bien guidé :MAIS mon code ne fonctionne pasVotre tâche est de créer la classe Book (Livre) et de peupler la base de données de développement de trois ou quatre livres pour vous assurer que l'interface fonctionne correctement (vous travaillerez avec le fichier Book.js).
La classe Book doit contenir les champs suivants :
title - string - le titre du livre
author - string - l'auteur du livre
description - string - une description du livre
pages - number - le nombre total de pages
currentPage - number - la page où se trouve l'utilisateur actuellement (entre 1 et pages)
read - boolean - si l'utilisateur a lu ou non le livre (par défaut: false)
La classe Book doit aussi contenir la méthode instance suivante :
readBook(page)
permet à l'utilisateur de dire à quelle page il se trouve actuellement
si l'argument page est inférieur à un ou supérieur au nombre total de pages du livre, readBook retourne 0
si l'argument page est supérieur ou égal à 1 et inférieur au nombre total de pages du livre, readBook modifie le champ currentPage de l'instance pour être égal à la valeur de l'argument passé, et retourne 1
si l'argument page est égal au nombre total de pages du livre, readBook modifie le champ currentPage de l'instance pour être égal à la valeur de l'argument passé, modifie le champ read de l'instance en true, et retourne 1
Quand vous aurez créé la classe Book, vous en créerez au moins trois instances valables et vous les mettrez dans le tableau books qui est exporté par Book.js. Pour vérifier votre travail, actualisez le navigateur intégré : vos instances Book devraient être visibles dans le carousel de l'interface RestfulReading.
Pour tester votre méthode instance readBook, suivez ces instructions pour trois livres (sans rafraîchir la page) :
mettez à jour la page actuelle avec une page valable qui est inférieure au nombre total de pages
mettez à jour la page actuelle avec exactement le nombre de pages total du livre (le livre devrait disparaître du carousel et apparaître dans la liste "Lus")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 export class Book { constructor(title, author,description,pages,currentPage,read){ this.title = title; this.author = author; this.description = description; this.pages = pages; this.currentPage = currentPage; this.read = read; } // ici j'ai tester currentPage =1 , j'ai tester de sortir le "read" ainsi que currentPage du constructeur également, et de ne pas les specifié dans mes constantes, ca ne change rien readBook=(page) =>{ // ici j'ai tester de faire sortir readBook de la class, c'est à ne pas faire, malgré que quelques personne l'ai conseillé car rien ne fonctionne - et de toute façon ca ne me paraissait pas coherent. j'ai tester aussi sans passer par la fonction fléché, pas de changement, les deux manieres fonctionnent // j'ai testé avec un switch, c'est pareil, ca fonctionne qu'a moitié (cad ca ne ce place pas dans "lu") if(page <1 || page > this.pages){ return 0; } else if(page >= 1 && page < this.pages){ this.currentPage += page; return 1; } else{ // j'ai tester avec un autre else if (page === this.pages) , pas de changement non plus, car de toute facon le dernier else prend en compte ce dernier cas this.currentPage += pages; // j'ai tester sans le "+=" et seulement "=", mais cela ne s'incremente plus, et ne fonctionne pas plus, j'ai trouver cela plus propre de le gardé incrementer avec le dernier numero de page rentré this.read = true; return 1; } } } const bookMartin = new Book ("martin", "Jean mich","serie B", 152,1,false); // ne vous moquez pas de mes nom de livre, j'ai pas d'inspiration const bookFifi = new Book ("fifi", " brindacier","ecoliere", 250,1,false); const bookTata = new Book ("tata", "toto", "blague", 10,1,false); export const books = [bookMartin,bookFifi,bookTata];
Bien entendu j'ai trouver le mot clef pour valider la formation open ClassRoom JS dans le code source, mais à quoi ca sert , moi je cherche juste des exercices, pas des certifs obtenu en fouillant les codes sources
Partager