JavaScript - Ayuda con Ejercicio

 
Vista:
sin imagen de perfil

Ayuda con Ejercicio

Publicado por Facu (2 intervenciones) el 09/02/2023 22:44:32
Buenas, estoy aprendiendo un poco de Javascript en un cursillo de Desarrollo Web basico, en este ejercicio tenia que usar un numero ingresado por el usuario (valMax) y de ese numero sacar todos los numero pares para despues enseñarlos en un alert. Trate de que mediante .push se enviaran los pares a una variable (max) que luego usaria en el alert, en fin fui cambiando cositas y aun asi no logree que se le asignen los numeros que arrojaba ciclo for a la variable max....Espero haberme explicado y puedan ayudarme con mi duda.

Gracias y un saludo!

1
2
3
4
5
6
7
8
9
10
11
12
13
var valMax = prompt ("Ingresa un valor máximo: ")
 
 var maxN = parseInt (valMax);
 var max = null;
 
 for (let i = 0; i < maxN; i++) {
     if (maxN[i] % 2 == 0 ) {
         max.push(maxN[i]);
     }
 }
 
 alert("Los numeros pares entre 0 y " + maxN + " son: \n " + max);
 console.log("Los numeros pares entre 0 y " + maxN + " son: \n " + max);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Ivan

Ayuda con Ejercicio

Publicado por Ivan (118 intervenciones) el 11/02/2023 10:50:36
Hola,

interesante e instructivo tu ejercicio.

Hay algunos errores típicos de cuando se empieza que he corregido y explicado linea a linea el código para que se entienda el funcionamiento de todo el algoritmo.

Una cosa que me ha gustado mucho es que últimamente todo el mundo utiliza "let" para definir variables y en este caso en concreto se puede ver que el uso de "var" aún sigue siendo útil en algunos casos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script>
  // Array donde guardaremos los resultados
  let max = [];
 
  // Bucle para obtener un número correcto
  do {
    // valMax se declara con var para que "exista" fura de este bucle
    var valMax = parseInt(prompt("Ingresa un valor máximo positivo: "));
    // Si valMax no es un número o es menor que 0 mostramos error
    if (isNaN(valMax) || valMax < 0) alert('Número incorrecto ...');
    // Cuando el número sea mayor o igual que 0 salimos
  } while (isNaN(valMax) || valMax < 0);
 
  // Recorremos un bucle de 0 a valMax, el número que se incrementa en el bucle es "i"
  for (let i=0; i<valMax; i++) {
    // Si el resto de dividir "i" por 2 es cero, "i" es número par y lo guardamos en el Array
    if (i % 2 == 0 ) max.push(i);
  }
 
  // Si hay números guardados mostramos el resultado
  if (max.length > 0) alert("Los numeros pares entre 0 y " + valMax + " son: \n " + max);
  // Si no hay números guardados, caso especial valMax = 0
  else  alert("Los numeros pares entre 0 y " + valMax + " son: \n cero");
</script>

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con Ejercicio

Publicado por Facu (2 intervenciones) el 11/02/2023 21:33:18
Hola Ivan!

Agradezco mucho tu respuesta y sobre todo el haberte tomado la molestia de explicar el por qué de cada línea, lo entendí muy bien, hay cosas como el ciclo do-while (que no lo tenia claro) y la palabra reservada(? isNaN (que desconocía) y busqué para aprender más al respecto.
Me quedó bastante claro lo que hiciste gracias a la explicación y con un poco de la información que encuentre lo dominaré mejor.

De nuevo muchas gracias y un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar