I just completed my Meal Maker project from the full stack developer skill path and I’m looking for feedback on my code regarding the efficiency/succinctness of my code and how to make it more efficient/succinct in the future. Thank you!!
const menu = {
_courses: {
appetizers: [],
mains: [],
desserts: []
},
get appetizers() {
if (this._courses.appetizers != undefined || null) {
return this._courses.appetizers;
} else {
return 'There are no appetizers available at the moment!'
}
},
get mains() {
if (this._courses.mains != undefined || null) {
return this._courses.mains;
} else {
return 'There are no mains available at the moment!'
}
},
get desserts() {
if (this._courses.desserts != undefined || null) {
return this._courses.desserts;
} else {
return 'There are no desserts available at the moment!'
}
},
set appetizers(newAppetizers){
if (typeof newAppetizers === 'string'){
this._courses.appetizers = newAppetizers
} else {
return 'Please input valid text.';
}
},
set mains(newMains){
if (typeof newMains === 'string'){
this._courses.mains = newMains
} else {
return 'Please input valid text.';
}
},
set desserts(newDesserts){
if (typeof newDesserts === 'string'){
this._courses.desserts = newDesserts
} else {
return 'Please input valid text.';
}
},
get courses(){
if (this._courses != undefined || null) {
return this._courses;
} else {
return 'No courses are available at the moment.'
}
},
addDishToCourse (courseName, dishName, dishPrice) {
if (typeof courseName === 'string' && typeof dishName === 'string' && typeof dishPrice === 'number') {
let dish = {
dishName,
dishPrice
};
this._courses[courseName.toLowerCase()].push(dish);
} else {
return 'Please input valid values.';
}
},
getRandomDishFromCourse (courseName) {
if (typeof courseName === 'string') {
let dishes = this._courses[courseName.toLowerCase()];
return dishes[Math.floor(Math.random()*dishes.length)]
}
},
generateRandomMeal () {
const appetizer = this.getRandomDishFromCourse('appetizers')
const main = this.getRandomDishFromCourse('mains')
const dessert = this.getRandomDishFromCourse('desserts')
const price = appetizer.dishPrice + main.dishPrice + dessert.dishPrice;
return `For your appetizer you have ${appetizer.dishName}, with ${main.dishName} as the main course, and ${dessert.dishName} as a dessert to top it all off. Your total is ${price}.`
}
};
menu.addDishToCourse('mains', 'Chicken Wings', 5);
menu.addDishToCourse('appetizers', 'Chicken Alfredo', 10);
menu.addDishToCourse('desserts', 'Chocolate Mousse', 5);
menu.addDishToCourse('mains', 'Chicken Tikka Masala', 5);
menu.addDishToCourse('mains', 'Butter Chicken', 30);
menu.addDishToCourse('appetizers', 'Butter Naan', 3);
menu.addDishToCourse('appetizers', 'Garlic Naan', 3);
menu.addDishToCourse('desserts', 'Tiramisu', 5);
menu.addDishToCourse('desserts', 'Molten Lava Cake', 5);
const meal = menu.generateRandomMeal();
console.log(meal);