Buenas paramonso, como ya hemos comentado en otros hilos por favor para poner título a los temas en los foros sigue las indicaciones que se dan en
https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0El ejercicio hace lo que pedía el enunciado, por ese lado todo bien.
Observaciones:
En la función ejemploFor parece que hay tres líneas que no sirven para nada (al menos yo no he logrado verle la utilidad, y si las elimino el código funciona igual). Estas líneas son las relacionadas con subpalabra:
var subpalabra = new Array();
subpalabra[0]='';
subpalabra[i] = subpalabra[i-1] + palabra.charAt(i-1);
El código funciona, pero si realmente estos fragmentos no tienen utilidad, podríamos decir que el código no está bien depurado, porque no es correcto que quede código sin utilidad.
Hay un detalle que puede resultar un tanto extraño a quien lo revise. En la función function mostrarContParrafos(elemento) hay algo que no es del todo coherente. Por un lado el nombre de la función es mostrarContParrafos y por otro lado la función recibe un parámetro, lo cual haría que no solo fuera invocable con párrafos sino también con cualquier otro elemento del DOM (p.ej. div, span, h1, label, etc.). Esto supone que el código es un tanto incoherente. Si el nombre de la función es mostrarContParrafos, ya no resulta lógico pasarle un parámetro, ya que únicamente se supone que va a trabajar con párrafos y no con otros elementos. Puede verse un ejemplo en
https://www.aprenderaprogramar.com/foros/index.php?topic=3289.0Salu2