Esto puede ser realmente simple, así que me disculpo, pero no puedo encontrar ninguna otra pregunta que haga lo mismo/similar. Aquí va...
Estoy tratando de encontrar una manera de sumar todos los valores de casos utilizados en cada interruptor. Entonces, para calcular todos los días de los números de la semana y generar los números totales de la siguiente manera
const getSleepHours = (day) => { switch(day) { case "Monday": return "8"; break; case "Tuesday": return "9"; break; case "Wednesday": return "9.5"; break; case "Thursday": return "11"; break; case "Friday": return "10.5"; break; case "Saturday": return "13"; break; case "Sunday": return "12"; break; default: return "Not sure what day that is"; } };Entonces 8 + 9 + 9.5 + 11 + 10.5 + 13 + 12. Hasta ahora he probado cosas como las siguientes
const getSleepHours = (day) => { switch(day) { case "Monday": return "8"; break; case "Tuesday": return "9"; break; case "Wednesday": return "9.5"; break; case "Thursday": return "11"; break; case "Friday": return "10.5"; break; case "Saturday": return "13"; break; case "Sunday": return "12"; break; default: return "Not sure what day that is"; } }; const getActualSleepHours = () => { const getSleepHours = ("Monday","Sunday"); return getSleepHours(); }; console.log(getSleepHours());Puede obtener el valor de cada día de la semana, analizarlo como un número float . Luego use esos valores para calcular el total (por ejemplo, usando reduce() ).
Además, si return de un caso, no necesita break porque ya no es accesible.
const getSleepHours = (day) => { switch (day) { case "Monday": return "8"; case "Tuesday": return "9"; case "Wednesday": return "9.5"; case "Thursday": return "11"; case "Friday": return "10.5"; case "Saturday": return "13"; case "Sunday": return "12"; default: return "Not sure what day that is"; } }; const days = [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]; // get hours as float values const sleepHours = days.map((d) => parseFloat(getSleepHours(d))); // calculate the total const sum = sleepHours.reduce((a, b) => a + b, 0); console.log(sum);Puedes prescindir switch-case
// 1️⃣ // Using Map object // If you define duplicated key It won's so error const sleepHours = new Map([ ['monday', 8], ['tuesday', 9], ['wednesday', 9.5], ['thursday', 11], ['friday', 10.5], ['saturday', 13], ['sunday', 12], ]) let totalSleepHours = 0 for (const [key, value] of sleepHours) { totalSleepHours += value } // 2️⃣ // Using object const sleepHours = { monday: 8, tuesday: 9, wednesday: 9.5, thursday: 11, friday: 10.5, saturday: 13, sunday: 12, } // If not provide initial value, array element at index 0 is used as the initial value Object.values(sleepHours).reduce((acc, curr) => acc += curr)