IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Création d'une classe Book


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Mars 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2021
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Création d'une classe Book
    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é :
    Votre 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")
    MAIS mon code ne fonctionne pas

    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

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 407
    Points : 15 774
    Points
    15 774
    Par défaut
    quel endroit de votre code correspond à la ligne suivante ?
    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

  3. #3
    Futur Membre du Club
    Femme Profil pro
    autodidacte
    Inscrit en
    Mars 2021
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2021
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    Il me semblait avoir répondu à cette consigne avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    else if(page >= 1 && page < this.pages){ // si l'argument page est >=1 et inferieur au nombre total de pages du livre
            this.currentPage += page; // readBook modifie le champs currentPage de l'instance pour etreégal à la valeur de l'argument passé
            return 1; // et retourn n1, j'ai essayé de retourné 1 en type string ("1"), ou en type boleen true, mais cela fait planter le code, alors j'ai laisser le type number
    }

Discussions similaires

  1. Problème de marge non valide pour ce format
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/07/2008, 14h55
  2. Validation de configuration pour achat d'ordi
    Par louroulou dans le forum Ordinateurs
    Réponses: 16
    Dernier message: 18/09/2007, 19h43
  3. Exercices corrigés pour prépa formation TCL
    Par Estelle.nugues dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 12/04/2007, 10h30
  4. validation non faire pour JFormattedTextField
    Par robert_trudel dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 10/04/2007, 05h12
  5. Réponses: 2
    Dernier message: 22/11/2005, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo