Primero, se supone que esto era para principiantes, de hecho un requisito era no saber nada para poder inscribirse, sin embargo en el fondo hay que saber para poder llevarlo de la mejor manera, estoy en el tema de recursividad y veo o siguiente.
Si empezamos por lógica de programación y allí mismo metemos buenas prácticas de programción en Javascript para un principiante se dificulta más, pues si una persona nunca ha programado, aun no tiene lógica de progración , peor aún podrá aplicar buenas pràcticas. creo que la lógica de programacíon es aprender a resolver el problema de la manera más eficaz, buenas prácticas de programacíon sería aprender a implementar el lenguaje de programación de la mejor manera.
Temas que se manejan, hasta cierto punto trabajar sobre el mismo problema para hacerlo más complejo me parece excelente hasta cierto punto, forzar para manerar array no creo que sea buena práctica.. (lo digo como principiante, aunque tengo capacidad de razonamiento ya aprendí algoritmos hace mucho tiempo) . creo que para una mejor comprensión de un array hay problemas enfocados en ello.
Crear más problemas innecesarios, estoy en al parte de recursividad, el manejarlo dentro de este mismo problema ha generado otro problema, por lo cual empieza a cambiar el código, no esta mal, pero era necesario.? estoy seguro que así como para los arreglos habrán ejemplos los cuales nos ayuden verdaderamente a comprenderlos, manejarlos e implementarlos,.. porque una cosa es ver como solucionan, algo diferente es saber cuando usarlo ..
nota: como principiante no podría usar la recursividad, pero si me piden que el programa no repita los números generados, y termine al generar todos los números, creo usara un ciclo For y el array length ,..