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(appetizers) {
this._courses.appetizers = appetizers;
},
set mains(mains) {
this._courses.mains = mains;
},
set desserts(desserts) {
this._courses.desserts = desserts;
},
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._courses[courseName];
const randomIndex = Math.floor(Math.random() * dishes.lenght);
return dishes[randomIndex];
},
generateRandomMeal() {
const appetizer = this.getRandomDishFromCourse('appetizers');
const main = this.getRandomDishFromCourse('mains');
const dessert = this.getRandomDishFromCourse('desserts');
const totalPrice = appetizer.price + main.price + dessert.price;
return `Your meal is ${appetizer.name}, ${main.name}, ${dessert.name}. The price is $${totalPrice}.`;
}
};
menu.addDishToCourse(‘appetizers’, ‘Fried Pickles’, 8.60)
menu.addDishToCourse(‘appetizers’, ‘Ranch Dip’, 5.35)
menu.addDishToCourse(‘appetizers’, ‘Garlic Bread’, 6.66)
menu.addDishToCourse(‘mains’, ‘Steak Tips’, 38.40)
menu.addDishToCourse(‘mains’, ‘Salmon’, 12.95)
menu.addDishToCourse(‘mains’, ‘Eggplant Parm’, 17.99)
menu.addDishToCourse(‘desserts’, ‘Ice Cream’, 7.30)
menu.addDishToCourse(‘desserts’, ‘TerribleSue’, 8.95)
menu.addDishToCourse(‘desserts’, ‘Coffee’, 1.95)
const meal = menu.generateRandomMeal();
console.log(meal);
I keep getting a TypeError: “Cannot read property ‘price’ of undefined” I don’t understand where I went wrong here. Can someone please point out what my mistake is, and either explain it to me or point me in the direction of the proper reference material.