Ver Mensaje Individual
  #6 (permalink)  
Antiguo 06/08/2010, 07:10
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Problema con bucles

Hola

Respecto a tus preguntas
Cita:
1ª Por que sino el último elemento del array sería undefined
2ª Lo puedes ordenar o no ordenarlo, no influye en nada, puesto que se ha de recorrer toda la matriz aleat. Con respecto a esto también he hecho alguna modificación para no evaluar indices que ya están evaluados
Fíjate en los cambios con respecto al script anterior
Código Javascript:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html xmlns="http://www.w3.org/1999/xhtml"lang="es" xml:lang="es">
  3. <head>
  4. <script type="text/javascript">
  5. function alternar(t1, t2){
  6. var letras = t1.value.toLowerCase().split('');
  7.  
  8. var cant = Math.round(Math.random()*letras.length);
  9.  
  10. var aleat = new Array();
  11. for (b = 0; b<cant; b++){
  12.  aleat[b] = Math.round(Math.random()*letras.length);
  13.  }
  14.  
  15. ordenaArray = aleat.sort();
  16.  
  17. var aceptados = /[a-z\s]/;
  18. var mayuscula = '';
  19. var result = '';
  20. for(t = 0; t<letras.length; t++){
  21.  
  22.     for(z = 0; z < ordenaArray.length; z++) {
  23.      
  24.         if(t == ordenaArray[z]){
  25. ordenaArray.splice(z,1) // eliminamos este elemento
  26. if (aceptados.test(letras[t])) {
  27.  
  28.  
  29.             mayuscula = letras[t];
  30.                   result += letras[t].toUpperCase();
  31.             break;
  32. } else {
  33.  result += letras[t];
  34. mayuscula = letras[t];
  35. break;
  36. }
  37.  
  38.              }
  39.  
  40.     }
  41.  
  42.  
  43.     if(letras[t] != mayuscula) {
  44. ordenaArray.splice(t,1) // eliminamos este elemento
  45.          result += letras[t];
  46.         mayuscula = '';
  47.     }
  48.  
  49. }
  50.  
  51.  
  52.  t2.innerHTML = result;
  53. }
  54. </script>
  55.  
  56. </head>
  57. <body>
  58. <form>
  59. <input type="text" value="un texto cualquiera con números 12 3 e incluso con caracteres especiales ?¿ no @importa" id="texto" />
  60. <textarea id="resultado" /></textarea>
  61. <input type="button" value="Traer Formulario" onclick="alternar(document.getElementById('texto'), document.getElementById('resultado'))" />
  62. </form>
  63. </body>
  64. </html>
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 06/08/2010 a las 12:45