Autor Tema: for JavaScript (bucles) Saber tamaño de array con length. Break ejemplo CU01131E  (Leído 2320 veces)

Salvadoruve2

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 69
  • Good night Seattle
    • Ver Perfil
Hola buenas, escribo este post no por que haya resulto el ejercicio, sino todo lo contrario es por que me he atascado en este apartado del curso y no puedo avanzar. El ejercicio es el CU01131E del tutorial básico de programador web JavaScript.

Mi problema es que no llego a entender como funciona la función 'for'. Y es que intento entender los dos ejemplos propuestos en este apartado por el curso, pero no logro entenderlos.

No entiendo como esto:

Código: [Seleccionar]
function ejemploFor() {

var palabra = 'Esternocleidomastoideo';

var subpalabra = new Array();

subpalabra[0]='';

var msg = 'Diez primeras letras: \n\n';

for (var i=1; i<=10; i++){subpalabra[i] = subpalabra[i-1] + palabra.charAt(i-1);}

for (var i=1; i<=10; i++){msg = msg + subpalabra[i] +'\n';}

msg = msg + '\nPalabra al revés: \n\n';

for (var i=palabra.length; i>0; i--){

msg = msg + palabra.charAt(i-1);

}

alert (msg);

}

puede llegar a convertirse en esto:

Diez primeras letras:

E
Es
Est
Este
Ester
Estern
Esterno
Esternoc
Esternocl
Esternocle

Palabra al revés:

oediotsamodielconretsE


No escribiría pidiendo ayuda si no me sintiera realmente frustado por que me impide avanzar en el curso. Hay alguna manera de explicarme mejor como funciona la estructura de bucles con los mismos ejemplos del apartado del curso.

Muchas gracias
« Última modificación: 11 de Junio 2016, 18:43 por César Krall »
Dt. Crane psychiatrist

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola Salvadoruve2.

Primer for:
Código: [Seleccionar]
for (var i=1; i<=10; i++){
subpalabra[i] = subpalabra[i-1] + palabra.charAt(i-1);
}
En la primera línea del for especificamos las veces que debe ejecutarse el bucle, en este caso serán 10 veces, empezando con i=1 hasta i=10, y con i++ lo que hacemos es incrementamos el valor de i en una unidad cada vez que se ejecute el bucle.

Cuando i = 1;
subpalbra[1] = (subpalabra[1-1=0] es igual '') +  (palbra.chartAt(1-1=0) = 'E');
Con i=2;
subpalabra[2] = (subpalabra[2-1=1] que es igual a 'E') + (palabra.charAt(2-1=1) que es igual a 's');
Con i=3;
subpalabra[3] = (subpalabra[3-1=2] que es igual a 'Es') + (palabra.charAt(3-1=2) que es igual a 't');
Con i=4;
subpalabra[4] = (subpalabra[4-1=3] que es igual a 'Est') + (palabra.charAt(4-1=3) que es igual a 'e');
...
Con i=10;
subpalabra[10] = (subpalabra[10-1=9] que es igual a 'Esternocl') + (palabra.charAt(10-1=9) que es igual a 'e');

En el segundo for, lo que hacemos es guardar los valores de cada elemento del array subpalabra[] dentro de la variable msg, y a cada vez que añadimos un valor a la variable msg, también añadimos un salto de línea, '\n'. Este bucle también se ejecutará 10 veces como el primero.

El tercer bucle, añade a la variable msg la palabra al revés. En este caso el bucle empieza desde i = 22 hasta llegar a i=1, para ir introduciendo las letras una a una empezando desde el final de la palabra.
Código: [Seleccionar]
for (var i=palabra.length; i>0; i--){

msg = msg + palabra.charAt(i-1);

}


Espero que te valga, pero si sigues teniendo dudas, dilo.

Saludos. ;D
« Última modificación: 05 de Junio 2016, 01:15 por pedro,, »

Salvadoruve2

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 69
  • Good night Seattle
    • Ver Perfil
Vale vale vale ya lo he entendido.. el primer for es para darle valores a la matriz subpalabra... y el segundo for es para incrustar esos valores en la variable msg para poder luego mostrarlos en la alerta... ..... madre mia lo que me ha costado

El tercer apartado de este ejemplo también lo he logrado entender despues de aplicar la lógica aprendida.

Cuando sea capaz de asimilar esto si no te importa volveré a escribir una entrada para poder entender el ejemplo numero dos del apartado. El refetente al cambio de colores de las etiquetas <p>.

Pero primero voy a volver a verlo con lo aprendido.

muchas gracias
Dt. Crane psychiatrist

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".