JavaScript - Parece que se cuelga

 
Vista:
Imágen de perfil de gari jaen

Parece que se cuelga

Publicado por gari jaen (3 intervenciones) el 24/12/2014 17:19:08
Tengo un problema con este codigo estoy aprendiendo Js y no se que esta pasando muchas gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script type="text/javascript">
	var cadena = "Hola yo soy de la cadena donde de se puede de encontar mas de una de";
	var nueva = 0;
	var posicion;
 
	do{
 
	posicion = cadena.indexOf("de",nueva);
 
	if(posicion != -1){
 
	document.write("de se encuentra en: " + posicion);
 
	document.write("<br>" + posicion);
 
	nueva = posicion + 1;
 
	}
 
	} while (nueva != -1);
 
</script>

Gracias
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 txema
Val: 71
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Parece que se cuelga

Publicado por txema (16 intervenciones) el 24/12/2014 17:32:18
Hola gari jaen :

Creo que has entrado en un bucle indefinido.

Ejemplo correcto:
1
2
3
4
5
6
7
8
9
10
11
12
<script>
function myFunction() {
    var text = ""
    var i = 0;
    do {
        text += "<br>The number is " + i;
        i++;
    }
    while (i < 10)
    document.getElementById("demo").innerHTML = text;
}
</script>
Revisa http://www.w3schools.com/js/js_loop_while.asp
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
Imágen de perfil de Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Parece que se cuelga

Publicado por Vainas (258 intervenciones) el 24/12/2014 18:24:01
Buenas:

Lo que dice txema es que has entrado en un bucle. Cuando

posicion = cadena.indexOf("de",nueva);

esto le de a posicion el valor -1 no va a entrar en el if, y dentro de el, actualizas la variable "nueva" asi que nunca se actualizara con lo cual tienes un bucle infinito.

Yo lo he arreglado asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var text = document.getElementById("text");
var cadena = "Hola yo soy de la cadena donde de se puede de encontar mas de una de";
var nueva = 0;
var posicion = 0;
 
do{
    posicion = cadena.indexOf("de",nueva);
    if(posicion != -1){
        text.innerHTML += "de se encuentra en: "+posicion+
            " posicion <br>";
 
    }
    nueva = posicion + 1;
}while(nueva != 0);

Espero que lo entiendas.

Saludos y Feliz navidad si la celebras!!!
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
Imágen de perfil de gari jaen

Parece que se cuelga

Publicado por gari jaen (3 intervenciones) el 25/12/2014 00:42:57
Muchas Gracias y feliz navidad para ti tambien. Muchas gracias.
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