estoy aprendiendo javascript; Estoy confundido acerca de cuándo usar 'return'. Hasta ahora, sé que 'return' se usa para especificar exactamente qué valor devolver o para detener la ejecución de una función.
Pero, al comparar mi solución con la clave de respuestas, su función requería una declaración de devolución, pero la mía no. Sin embargo, ambos mostraron los mismos resultados en la consola. ¿Por qué? ¿Son los resultados realmente diferentes?
Problema : "Usando un bucle WHILE, calcule el porcentaje de puntajes de prueba de los estudiantes almacenados en la matriz testScore. La prueba tiene un total de 50. Almacene los porcentajes en otra matriz y muéstrelos en la consola".
Mi solución:
const testScore = [10, 40, 30, 25]; const percentages = []; const gradePercentage = (scores) => { const perc = (scores / 50) * 100; percentages.push(perc); }; let i = 0; while (i < testScore.length) { gradePercentage(testScore[i]); i++; } console.log(percentages);clave de respuesta
const testScore = [10, 40, 30, 25]; const percentages = []; const gradePercentage = (scores) => { return (scores / 50) * 100; }; let i = 0; while (i < testScore.length) { const perc = gradePercentage(testScore[i]); percentages.push(perc); i++; } console.log(percentages);Ambos mostraron este resultado:
Cuando ejecuta su función, muta directamente los percentages llamando a percentages.push(perc); , mientras que la función gradePercentage de la clave de respuestas no modifica los percentages .
La clave de respuesta hace lo que se llama función pura , una función determinista que no tiene efectos secundarios. Personalmente, prefiero escribir este tipo de funciones, ya que pueden probarse fácilmente.