Bonjour,
Je débute en javascript, j'essaye de vérifier la présence d'un objet au sein d'un tableau, lui-même dans une class. Je n'y arrive pas pour le moment.
Mon code:
1ère class livre avec le constructeur
Code :
- class Livre {
- constructor (titre,pages){
- this.titre = titre
- this.pages = pages
- }
- }
|
2ème class, avec la méthode addbook qui va poser problème
Code :
- class Librairie {
- #livres = []
- addbook(livre){
-
- if(this.#livres[livre] == undefined){
- this.#livres.push(livre)
- }
- else{
- console.log('ce livre existe déjà')
- }
-
- }
- addbooks(livres){
- for(let livre of livres){
- this.#livres.push(livre)
- }
- }
- }
|
Création des objets
Code :
- let book1 = new Livre('Seigneur des anneaux', 300)
- let book2 = new Livre('Tintin au tibet', 25)
- let bibliotheque = new Librairie()
|
J'essaie de perfectionner la fonction addbook en ajoutant une condition:
si le livre passé en argument est déjà présent dans le tableau '#livres' de la 'bibliothèque', alors le livre ne doit pas s'ajouter, le code doit afficher 'le livre existe déjà'.
A l'évidence mon code ne fonctionne pas puisque si je fais 2 fois
Code :
- bibliotheque.addbook(book1)
|
alors le tableau #livres contient 2 fois le livre book1
Preneur de vos remarques
Merci