JavaScript - Problema con un bucle 'for'.--

 
Vista:
sin imagen de perfil

Problema con un bucle 'for'.--

Publicado por Bertoldo (6 intervenciones) el 10/03/2017 17:31:40
Hola a todos.

El siguiente bucle trata de obtener en una matriz, el número de posición de carácter dentro de un texto o darle valor 'g' si es un espacio. Inexplicablemente deja de hacerlo desde la posición cercana a 80 hasta 100 (en el caso del texto adjunto falla a partir de 83).
¿Se os ocurre alguna explicación?

Adjunto captura de mi 'alert' por si con vosotros se comporta como un script formal.

Saludos,
Bertoldo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<html>
 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Pagina nueva 1</title>
</head>
 
<body>
<script language=javascript>
var texto=" mmm mmmmm mmmmmm mmmmmmm mmm mmmm mmm mmm mmmmmmmmm m mmmmmmmmm m mmm mmmmm mmm m mmm mmmmmm mmmmmmmmmm mmmmmmmm mmmmm mm mmmmm mm mmmmmmm mm mm mmmmmmmm";
var numLetr=new Array(texto.length);
var espacios=-1;
for (var i = 10; i < 100; i++) {
   numLetr[i]=texto.charAt(i);
   if (numLetr[i]==" "){
      numLetr[i]="g";//Si es un espacio adjudica la letra g (cuadro webdings)
      espacios=espacios+1;
    }  else {
          numLetr[i]=i-espacios+" ";
       }
}alert(numLetr)
</script>
</body>
 
</html>
forCap
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 Alejandro
Val: 477
Bronce
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con un bucle 'for'.--

Publicado por Alejandro (130 intervenciones) el 10/03/2017 23:53:53
Hola, intenta cambiar la condición del for
1
i < 100
por
1
i < texto.length

Nos comentas.
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

Problema con un bucle 'for'.--

Publicado por Bertoldo (6 intervenciones) el 11/03/2017 00:07:05
Gracias, Alejandro, por contestar.

Nope, la condición es inapelable: '< 100', ya que a partir de 100 y hasta texto.length se ha de tomar otra medida.

De todas formas, ¿tú ves lógico el comportamiento del código?

Saludos,
Bertoldo.
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 kip
Val: 553
Bronce
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema con un bucle 'for'.--

Publicado por kip (107 intervenciones) el 11/03/2017 01:16:36
Hola, el bucle FOR esta ejecutándose correctamente si te fijas al verificar si es un espacio o no en el case de no tenerlo haces una resta de la posicion menos los espacios entonces si cuentas la cantidad de letras 'g' en el alert te daras cuenta que el resultado sera 99, el num limite del FOR.

Segun lo que vi la letra 'g' aparece 17 veces cuando haces el alert, entonces 83 + 17 es 99 como te decia arriba lo que es el limite de tu FOR, lo que colocas como posicion de la letra en el texto en el array no lo veo correcto, yo lo haria asi:

1
numLetr[i] = i;

Y de esa forma esa seria la posicion de la letra, no se si es lo que quieres, explicanos mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Problema con un bucle 'for'.--

Publicado por Bertoldo (6 intervenciones) el 11/03/2017 14:40:38
¡Cierto, Kip, ahí está el busilis!

Muchas gracias y saludos,
Bertoldo.
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