Skip to content

Instantly share code, notes, and snippets.

@codecademydev
Created January 18, 2019 10:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save codecademydev/a379e08e758da72a740e0aa0e7c07b21 to your computer and use it in GitHub Desktop.
Save codecademydev/a379e08e758da72a740e0aa0e7c07b21 to your computer and use it in GitHub Desktop.
Codecademy export
const menu = {
_courses: {
appetizers: [],
mains: [],
desserts: [],
},
get appetizers() {},
set appetizers(appetizerIn) {},
get mains() {},
set mains(mainsIn) {},
get desserts() {},
set desserts(dessertsIn) {},
get _courses() {return {appetizers: this._courses.appetizers, mains: this._courses.mains, dessert: this._courses.desserts};
},
addDishToCourse(courseName, dishName, dishPrice){
const dish = {
name: dishName,
price: dishPrice
};
this._courses[courseName].push(dish);
},
getRandomDishFromCourse(courseName) {
const dishes = this._courses[courseName];
const randomIndex = Math.floor(Math.random()*dishes.length);
return dishes[randomIndex];
},
generateRandomMeal () {
const appetizer = this.getRandomDishFromCourse('appetizers');
const mains = this.getRandomDishFromCourse('mains');
const desserts = this.getRandomDishFromCourse('desserts');
const totalPrice = appetizer.price + main.price + dessert.price;
return `Your meal is ${appetizer.name}, ${main.name} and ${dessert.name}. The price is $${totalPrice}.`;
}
};
menu.addDishToCourse('appetizers', 'olives', 3.00);
menu.addDishToCourse('appetizers', 'nachos', 3.00);
menu.addDishToCourse('appetizers','garlic bread', 3.00);
menu.addDishToCourse('main', 'pizza', 9.00)
menu.addDishToCourse('main', 'quiche', 9.00)
menu.addDishToCourse('main', 'risotto', 9.00)
menu.addDishToCourse('dessert', 'apple pie', 5.00);
menu.addDishToCourse('dessert', 'chocolate ice cream', 5.00);
menu.addDishToCourse('dessert', 'baklava', 5.00);
console.log(menu.courses);
appetizers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment