Programar no es escribir código perfecto desde el principio. Es escribir algo, probarlo, ver qué falla y corregirlo. Eso se llama depurar.
Y cuando el código ya funciona pero está desordenado o es difícil de leer, refactorizarlo significa mejorarlo sin cambiar lo que hace.
El archivo del editor tiene código con errores reales. Tu misión es encontrarlos y corregirlos.
Hay dos problemas escondidos:
length - 1, pero el bucle usa <= en vez de <.La técnica más básica y más útil: meter console.log en los puntos sospechosos.
Eso te permite ver exactamente qué pasa en cada paso. No adivines: observa.
JavaScript no puede leer tu código:
Usas una variable que no existe:
Intentas hacer algo que ese valor no soporta:
El código se ejecuta sin errores, pero el resultado es incorrecto. Estos son los más difíciles porque JavaScript no se queja, simplemente hace algo distinto a lo que esperabas.
Refactorizar es tomar código que funciona y hacerlo más claro, más corto o más robusto.
Antes:
Después:
El comportamiento es el mismo. Pero la segunda versión expresa mejor la intención.
Cuándo no refactorizar:
Corrige los errores del código que hay en el editor. Usa console.log para inspeccionar qué pasa en cada paso. Cuando el total sea correcto (debería ser la suma de los números válidos), habrás terminado.
Programar bien no es acertar siempre: es saber corregir el rumbo...