Created
September 18, 2018 17:17
-
-
Save mahdiyazdani/5acc54feeb207d6f6f9ed1a52dcefa23 to your computer and use it in GitHub Desktop.
Meal Maker in JavaScript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const menu = { | |
_courses: { | |
appetizers: [], | |
mains: [], | |
desserts: [] | |
}, | |
addDishToCourse( courseName, dishName, dishPrice ) { | |
dish = { | |
name: dishName, | |
price: dishPrice | |
} | |
this._courses[courseName].push( dish ); | |
}, | |
getRandomDishFromCourse: function( 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 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}.`; | |
}, | |
get courses() { | |
return Object.entries( this._courses ); | |
}, | |
get appetizers() { | |
return this._courses.appetizers; | |
}, | |
get mains() { | |
return this._courses.mains; | |
}, | |
get desserts() { | |
return this._courses.desserts; | |
}, | |
set appetizers( appetizerIn ) { | |
this._courses.appetizers = appetizerIn; | |
}, | |
set mains( mainsIn ) { | |
this._courses.mains = mainsIn; | |
}, | |
set desserts( dessertsIn ) { | |
this._courses.desserts = dessertsIn; | |
} | |
}; | |
menu.addDishToCourse( 'appetizers', 'Caesar Salad', 4.25 ); | |
menu.addDishToCourse( 'appetizers', 'King Crab', 6.33 ); | |
menu.addDishToCourse( 'appetizers', 'Pepper Jelly', 5.65 ); | |
menu.addDishToCourse( 'mains', 'Chicago Deep-Dish Pizza', 44.55 ); | |
menu.addDishToCourse( 'mains', 'Chimichurri Baked Chicken', 33.75 ); | |
menu.addDishToCourse( 'mains', 'Beef Paprika', 42.25 ); | |
menu.addDishToCourse( 'desserts', 'Strawberry Angel Food', 24.25 ); | |
menu.addDishToCourse( 'desserts', 'Chocolate Eclair', 22.45 ); | |
menu.addDishToCourse( 'desserts', 'Sopapilla Cheesecake', 14.25 ); | |
const meal = menu.generateRandomMeal(); | |
console.log( meal ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
thank you this was very helpful.