Hi, I can keep getting a TypeError: Cannot read property ‘appetizers’ of undefined
whenever I try to run my code. I’ve searched the forum and have tried to use the methods provided that have helped other users but it hasn’t seemed to work for me. can you please help?
----- MY CODE ------
const menu = {
_courses: {
appetizers: [],
mains: [],
desserts: []
},
get appetizers(){
return this._courses.appetizers;
},
get mains(){
return this._courses.mains;
},
get desserts(){
return this._courses.desserts;
},
set appetizers(appetizersIn){
this._courses.appetizers = appetizersIn;
},
set mains(mainsIn){
this._courses.mains = mainsIn;
},
set desserts(dessertsIn){
this._courses.desserts = dessertsIn;
},
get courses(){
return {
appetizers: this.appetizers,
mains: this.mains,
desserts: this.desserts
}
},
addDishToCourse(courseName, dishName, dishPrice){
const dish = {
name: dishName,
price: dishPrice,
};
return this._courses[courseName].push(dish)
},
getRandomDishFromCourse(courseName) {
const dishes = this._course[courseName];
const randomIndex = Math.floor(Math.random() * dishes.length);
return dishes[randomIndex]
},
generateRandomMeal() {
const appetizers = this.getRandomDishFromCourse('appetizers');
const mains = this.getRandomDishFromCourse('mains');
const desserts = this.getRandomDishFromCourse('desserts');
const totalPrice = appetizers.price + mains.price + desserts.price
return `Your meal is ${appetizers.name}, ${mains.name}, ${desserts.name} The price is £${totalPrice}.`;
}
};
menu.addDishToCourse('appetizers', 'Marak', 4.50)
menu.addDishToCourse('appetizers', 'Sambuus', 2)
menu.addDishToCourse('appetizers', 'Salaato', 3)
menu.addDishToCourse('mains', 'Federation', 13)
menu.addDishToCourse('mains', 'Bariis iyoo Haneed', 10)
menu.addDishToCourse('mains', 'Canjeero dilac bilaash', 9)
menu.addDishToCourse('desserts', 'Tiramisu', 5)
menu.addDishToCourse('desserts', 'Baklava', 3)
menu.addDishToCourse('desserts', 'Khat', 25)
let meal = menu.generateRandomMeal()
console.log(meal)
console.log(meal.courses)
thanks in advance!
mod edited formatting
To the OP: This is a one time freebie. Format your code samples if you want to be taken seriously. Skipping over the new user reading is not advisable.