Hi guys I cannot figure out whats wrong. I have checked every line of code with the video and the code here. I always end up with:
**The meal is undefined + undefined + undefined for NaN **
HEELP please
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.length);
return dishes[randomIndex];
},
getRandomMeal() {
const appetizer = this.getRandomDishFromCourse('appetizers');
const main = this.getRandomDishFromCourse('mains');
const dessert = this.getRandomDishFromCourse('desserts')
const totalPrice = appetizer.price + main.price + dessert.price
return `The meal is ${appetizer.name} + ${main.name} + ${dessert.name} for ${totalPrice} `
},
}
menu.addDishToCourse('appetizers', 'olives', 4.00);
menu.addDishToCourse('appetizers', 'wings', 5.30);
menu.addDishToCourse('appetizers', 'fries', 6.00);
menu.addDishToCourse('mains', 'steak', 14.50)
menu.addDishToCourse('mains', 'tofu', 12.30)
menu.addDishToCourse('mains', 'Burger', 14.10)
menu.addDishToCourse('desserts', 'ice cream', 7.00)
menu.addDishToCourse('desserts', 'pineapple', 4.00)
menu.addDishToCourse('desserts', 'coffee', 3.00)
const meal = menu.getRandomMeal();
console.log(meal)