Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Jot_Ade_Em3 en 18 Julio 2021, 06:28 am



Título: Buenas a todos... Este código me imprime todas las letras juntas... Alguien sabe cómo hacer para que imprima de una???
Publicado por: Jot_Ade_Em3 en 18 Julio 2021, 06:28 am
Código
  1. function hacer(){
  2. var aLetras = new Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w','x', 'y', 'z');
  3.  
  4. aLetras = aLetras.sort(function() {return Math.random() - 0.5});
  5.  
  6. var cajaLetra1 = document.getElementById("campo1");
  7. cajaLetra1.value = aLetras[0];
  8. var cajaLetra2 = document.getElementById("campo2");
  9. cajaLetra2.value = aLetras[1];
  10. var cajaLetra3 = document.getElementById("campo3");
  11. cajaLetra3.value = aLetras[2];
  12. var cajaLetra4 = document.getElementById("campo4");
  13. cajaLetra4.value = aLetras[3];
  14. var cajaLetra5 = document.getElementById("campo5");
  15. cajaLetra5.value = aLetras[4];
  16. var cajaLetra6 = document.getElementById("campo6");
  17. cajaLetra6.value = aLetras[5];
  18. var cajaLetra7 = document.getElementById("campo7");
  19. cajaLetra7.value = aLetras[6];
  20. var cajaLetra8 = document.getElementById("campo8");
  21. cajaLetra8.value = aLetras[7];
  22. var cajaLetra9 = document.getElementById("campo9");
  23. cajaLetra9.value = aLetras[8];
  24. var cajaLetra10 = document.getElementById("campo10");
  25. cajaLetra10.value = aLetras[9];
  26. var cajaLetra11 = document.getElementById("campo11");
  27. cajaLetra11.value = aLetras[10];
  28. var cajaLetra12 = document.getElementById("campo12");
  29. cajaLetra12.value = aLetras[11];
  30. var cajaLetra13 = document.getElementById("campo13");
  31. cajaLetra13.value = aLetras[12];
  32. var cajaLetra14 = document.getElementById("campo14");
  33. cajaLetra14.value = aLetras[13];
  34. var cajaLetra15 = document.getElementById("campo15");
  35. cajaLetra15.value = aLetras[14];
  36. var cajaLetra16 = document.getElementById("campo16");
  37. cajaLetra16.value = aLetras[15];
  38. var cajaLetra17 = document.getElementById("campo17");
  39. cajaLetra17.value = aLetras[16];
  40. var cajaLetra18 = document.getElementById("campo18");
  41. cajaLetra18.value = aLetras[17];
  42. var cajaLetra19 = document.getElementById("campo19");
  43. cajaLetra19.value = aLetras[18];
  44. var cajaLetra20 = document.getElementById("campo20");
  45. cajaLetra20.value = aLetras[19];
  46. var cajaLetra21 = document.getElementById("campo21");
  47. cajaLetra21.value = aLetras[20];
  48. var cajaLetra22 = document.getElementById("campo22");
  49. cajaLetra22.value = aLetras[21];
  50. var cajaLetra23 = document.getElementById("campo23");
  51. cajaLetra23.value = aLetras[22];
  52. var cajaLetra24 = document.getElementById("campo24");
  53. cajaLetra24.value = aLetras[23];
  54. var cajaLetra25 = document.getElementById("campo25");
  55. cajaLetra25.value = aLetras[24];
  56. var cajaLetra26 = document.getElementById("campo26");
  57. cajaLetra26.value = aLetras[25];
  58. var cajaLetra27 = document.getElementById("campo27");
  59. cajaLetra27.value = aLetras[26];
  60.  
  61.  
  62. var resultado = document.getElementById('resultado');
  63. var html = aLetras;
  64.  
  65. resultado.innerHTML = html;
  66. }


Título: Re: Buenas a todos... Este código me imprime todas las letras juntas... Alguien sabe cómo hacer para que imprima de una?
Publicado por: Tusso4 en 19 Julio 2021, 15:49 pm
Si pones un ejemplo del output que buscas, quizá se te pueda ayudar mejor  ;-)


Título: Re: Buenas a todos... Este código me imprime todas las letras juntas... Alguien sabe cómo hacer para que imprima de una?
Publicado por: MinusFour en 19 Julio 2021, 17:59 pm
Tienes que demorar la instrucción por un determinado tiempo.

Nadie usa new Array() por cierto ahora se utiliza:

Código
  1. let aLetras = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w','x', 'y', 'z']

No entiendo exactamente donde quieres imprimir las letras, parece que tienes 27 inputs pero también al final imprimes todo.

sort también muta el arreglo, así que no es necesario reasignar el mismo arreglo a la variable.

Quizás algo que podrías hacer sería:

Código
  1. for(let i = 0; i < aLetras.length; i++){
  2.  setTimeout(function(){
  3.    let elem = document.getElementById(`campo${i+1}`);
  4.    elem.value = aLetras[i];
  5.  }, i * 300);
  6. }

Pero sin entender exactamente como los quieres mostrar de una a una, es difícil saber.


Título: Gracias me ayudaste un montón... Ahora tengo otro problema... Necesito que imprima la letra anterior no la siguiente...
Publicado por: Jot_Ade_Em3 en 21 Julio 2021, 18:38 pm
function hacer(bot){

var aLetras = new Array('a', 'b', 'c');

aLetras = aLetras.sort(function() {return Math.random() - 0.5});

var cajaLetra1 = document.getElementById("campo1");
cajaLetra1.value = aLetras[0];
var cajaLetra2 = document.getElementById("campo2");
cajaLetra2.value = aLetras[1];
var cajaLetra3 = document.getElementById("campo3");
cajaLetra3.value = aLetras[2];

var txtarea = document.getElementById('ta');
var html = new Array(aLetras[bot]);
txtarea.value+=html;
txtarea.focus();
return;

}