Skip to content

Instantly share code, notes, and snippets.

@koraduba7
Created November 24, 2021 00:09
Show Gist options
  • Save koraduba7/8c11fda7ade1fe6fd93d2bc695591fbe to your computer and use it in GitHub Desktop.
Save koraduba7/8c11fda7ade1fe6fd93d2bc695591fbe to your computer and use it in GitHub Desktop.
const menu = {
_courses: {
appetizers: [],
mains: [],
desserts: []
},
get appetizers(){
return this._courses.appetizers;
},
set appetizers(appetizerIn){
this._courses.appetizers = appetizerIn;
},
get mains(){
return this._courses.main;
},
set mains(mainsIn){
this._courses.mains = mainsIn;
},
get desserts(){
return this._courses.desserts;
},
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 = {
price: dishPrice,
name: dishName,
};
return 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 main = this.getRandomDishFromCourse('mains');
const desserts = this.getRandomDishFromCourse('desserts');
const totalPrice = appetizer.price + main.price + desserts.price;
return `${appetizer.name}, ${main.name}, ${desserts.name} cost ${totalPrice}`;
}
};
menu.addDishToCourse('appetizers', 'Olive', 5);
menu.addDishToCourse('appetizers', 'sandwitch', 3);
menu.addDishToCourse('appetizers', 'omelet', 6);
menu.addDishToCourse('mains', 'potato soup', 12);
menu.addDishToCourse('mains', 'beef steak', 20);
menu.addDishToCourse('mains', 'rice with fish', 12);
menu.addDishToCourse('desserts', 'chocolate ice cream', 8);
menu.addDishToCourse('desserts', 'salad', 6);
menu.addDishToCourse('desserts', 'coffee', 2.4);
let meal = menu.generateRandomMeal();
console.log(meal);
@koraduba7
Copy link
Author

It's took 1-2 hours of my life.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment