const menu = {
_courses: {
appetizers: [],
mains: [],
desserts: [],
},
get appetizers() {
this._courses.appetizers
},
get mains() {
this._courses.mains
},
get desserts() {
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];
},
generateRandomMeal() {
const appetizer = this.getRandomDishFromCourse('appetizers');
const main = this.getRandomDishFromCourse('mains');
const dessert = this.getRandomDishFromCourse('desserts');
let totalPrice = appetizer.price + main.price + dessert.price.toFixed(0);
return `Sua carne Ʃ ${appetizer.name}, ${main.name}, ${dessert.name} e o preƧo total Ʃ de R$${totalPrice}.`
}
};
menu.addDishToCourse('appetizers', 'Caesar Salad', 5.00)
menu.addDishToCourse('appetizers', 'Cenoura', 10.00)
menu.addDishToCourse('appetizers', 'batata', 15.00)
menu.addDishToCourse('mains', 'Picanha', 55.00)
menu.addDishToCourse('mains', 'File Mignon', 15.55)
menu.addDishToCourse('mains', 'Contra filƩ', 80.60)
menu.addDishToCourse('desserts', 'Brigadeiro', 50.55)
menu.addDishToCourse('desserts', 'Pudim', 15.00)
menu.addDishToCourse('desserts', 'Canjica', 25.00)
let meal = menu.generateRandomMeal();
console.log(meal)
Iām trying to understand when we use the āgetterā and āsetterā, but I canāt connect the codes.