Este código es de un tutorial. Seguía dando errores extraños y ahora está atascado en
Error de sintaxis: símbolo inesperado }
Seguí el tutorial de cerca pero todavía no puedo localizar el error. PD Aparentemente, necesito agregar una cierta cantidad de palabras a la descripción para poder enviar la pregunta, así que solo soy yo haciendo eso, realmente no tengo nada más que decir. Gracias.
const menu = { _courses: { appetizers: [], mains: [], desserts: [], }, get appetizers() { return this._courses.appetizers; }, get mains() { return this._courses.mains; }, get desserts() { return this._courses.desserts; }, set appetizers(appt) { return this._courses.appetizers = appetizers; }, set mains(mains) { return this._courses.mains = mains; }, set desserts(dess) { return this._courses.desserts = desserts, }, get courses() { return { appetizers: this._courses.appetizers; mains: this._courses.mains; desserts: this._courses.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 randomI = Math.floor(Math.random() * dishes.length); return dishes[randomI]; }, generateRandomMeal() { const appetizer = this.getRandomDishFromCourse(appetizers); const main = this.getRandomDishFromCourse(main); const dessert = this.getRandomDishFromCourse(desserts); const totalPrice = appetizer.price + main.price + dessert.price; return `Your mean is ${appetizer.name}, ${main.name} and ${dessert.name}, and the total price is ${totalPrice}` }, }; menu.addDishToCourse('appetizers', 'salad', 4) menu.addDishToCourse('appetizers', 'wings', 3) menu.addDishToCourse('appetizers', 'fries', 5) menu.addDishToCourse('mains', 'steak', 10) menu.addDishToCourse('mains', 'kebab', 11) menu.addDishToCourse('mains', 'cizbiz', 9) menu.addDishToCourse('desserts', 'ice cream', 4) menu.addDishToCourse('desserts', 'cake', 5) menu.addDishToCourse('desserts', 'coffee', 4) const meal = menu.generateRandomMeal(); console.log(meal)Ok, entonces he encontrado muchos errores aquí.
la línea 17 debería ser: return this._courses.appetizers = appt;
appt es el argumento pasado a la función
la línea 23 debería ser: return this._courses.desserts = dess;
De nuevo, dess es el argumento pasado a la función. Además, la declaración debe terminar con un punto y coma, no con una coma.
líneas 27 - 29: Las líneas deben terminar con comas y no con punto y coma. Está devolviendo un objeto, por lo que las propiedades del objeto deben estar separadas por comas, no por punto y coma.
líneas 34 - 35: Mismo problema, devolver un objeto. Necesita separar las propiedades con comas en lugar de punto y coma.
líneas 46 - 48: Las variables pasadas a las funciones no existen. Los argumentos para esa función deben ser cadenas. Así que cambie esas variables a cadenas en su lugar. Además, asegúrese de cambiar main a "mains" en la línea 48.
Deberías aprender algo de depuración. Ejecute el código con Node.js o colóquelo en una etiqueta de script en HTML y ejecútelo en el navegador. Luego puede ver los errores producidos que generalmente le muestran exactamente dónde están los problemas.