Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: amok en 27 Marzo 2017, 21:45 pm



Título: ayuda con javascript
Publicado por: amok en 27 Marzo 2017, 21:45 pm
Hola compañeros.

Estoy intentando hacer un ejercicio de javascript, el cual comprueba si los valores introducidos por teclado son los mismos que se crean aletoriamente. Pero no se, una vez introducidos los números entra en bucle infinito.

Me podeis ayudar?

Código:
<script type="text/javascript">

var a=new Array (10);
var i=0;
var existe=0;
var x;


for (var i=0; i<a.length; i++){
x=Math.round((Math.random()*9)+1);
a[i]=x
document.write (a[i]+ " ");
}

document.write ("<br>");

for (var i=0; i<a.length; i++){
a[i]=parseInt(prompt("Introduzca numero",' '));
document.write (a[i]+ " ");
}

while (i<a.length || existe==0){
if (x==a[i])
{
existe=1;
auxp=i;
}
else {i++;}
}

if (existe==1)
{
document.write (" <br> El n&uacute;mero " +x+ " est&aacute; en el array " + " En la posición " + i);
}
else
{
document.write (" <br> El n&uacute;mero " +x+ " no est&aacute; en el array ");
}


</script>


Título: Re: ayuda con javascript
Publicado por: engel lex en 27 Marzo 2017, 22:14 pm
Código
  1. while (i<a.length || existe==0){
  2.   if (x==a[i])
  3.    {
  4.    existe=1; // existe se torna 1 loop se repite
  5.    auxp=i;
  6.    }
  7.   else {i++;} //existe nunca se torna 0, loop nunca termina
  8.  }


Título: Re: ayuda con javascript
Publicado por: amok en 27 Marzo 2017, 23:04 pm
Código
  1. while (i<a.length || existe==0){
  2.   if (x==a[i])
  3.    {
  4.    existe=1; // existe se torna 1 loop se repite
  5.    auxp=i;
  6.    }
  7.   else {i++;} //existe nunca se torna 0, loop nunca termina
  8.  }

He cambiado

Código:
while (i<a.length && existe==0){

pero ahora siempre dice que el numero no está en el array


Título: Re: ayuda con javascript
Publicado por: engel lex en 28 Marzo 2017, 00:56 am
te recomiendo usar el debugger del navegador, no es para nada complicado, seguro puedes conseguir un tutorial de como usar tu debugger (y si no sabes que es un debugger recomiendo primero leer una explicación de que son y como funcionan)

Código
  1. for (var i=0; i<a.length; i++){//i inicia en 0
  2.  a[i]=parseInt(prompt("Introduzca numero",' '));
  3.  document.write (a[i]+ " ");
  4.  }
  5. //actualmente i es igual a a.length porque fue la condicion de romper el for
  6.  
  7.  while (i<a.length && existe==0){ //i es igual a a.length, y como no ambas partes se cumplen se salta
  8.   if (x==a[i])
  9.    {
  10.    existe=1;
  11.    auxp=i;
  12.    }
  13.   else {i++;}
  14.  }


Título: Re: ayuda con javascript
Publicado por: amok en 28 Marzo 2017, 18:03 pm
te recomiendo usar el debugger del navegador, no es para nada complicado, seguro puedes conseguir un tutorial de como usar tu debugger (y si no sabes que es un debugger recomiendo primero leer una explicación de que son y como funcionan)

Código
  1. for (var i=0; i<a.length; i++){//i inicia en 0
  2.  a[i]=parseInt(prompt("Introduzca numero",' '));
  3.  document.write (a[i]+ " ");
  4.  }
  5. //actualmente i es igual a a.length porque fue la condicion de romper el for
  6.  
  7.  while (i<a.length && existe==0){ //i es igual a a.length, y como no ambas partes se cumplen se salta
  8.   if (x==a[i])
  9.    {
  10.    existe=1;
  11.    auxp=i;
  12.    }
  13.   else {i++;}
  14.  }

Gracias por la recomendación compañero. Ya uso el Firebug que ayuda bastante.

Yo quiero que si i está incluida en x; existe sea igual a 1 y me vaya guardando el numero introducido.

por ello puse este código

Código:
while (i<a.length || existe==0)

y mientras existe=1 vaya recorriendo todos los números.

sino pues incrementar el número, pero claro esto hace que nunca termine el bucle.

Con ese else solo pretendo que se incremente el númro no que existe valga 1