Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

412
Visualizações
Bucle palabras aleatorias usando Javascript

Encontré este código aquí en Stackoverflow que muestra palabras aleatorias en la carga de la página y muestra una nueva cuando se recarga la página. Siendo nuevo en Javascript, no sé cómo hacer que se repita entre las palabras una vez que se carga la página. Eso es mostrar una nueva palabra de la lista después de cada segundo.

El código es

 var things = ['Rock', 'Paper', 'Scissor']; var thing = things[Math.floor(Math.random()*things.length)]; alert('The computer chose:' + thing);

EDITAR: Me gustaría imprimir el resultado en la página y no usar la alerta.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Debido a que solo tiene un pequeño conjunto de elementos que desea recorrer y está tratando de evitar que el mismo elemento "aleatorio" se escriba muchas veces seguidas, tendrá que implementar algún tipo de sistema de "recordar". Aquí hago una copia de la matriz y splice palabras de ella, y luego la restablezco una vez que está vacía.

También he usado setTimeout en este ejemplo. (Preferencia personal). De vez en cuando, aparecerá la misma palabra dos veces seguidas a medida que se restablece la matriz. Si no quería palabras repetidas, puede incorporar ese control en la función, pero creo que eso anula todo el propósito de "piedra, papel, tijera": a veces quiere jugar "papel" 20 veces seguidas :)

 const arr = ['Rock', 'Paper', 'Scissor']; const el = document.querySelector('#demo'); // `log` accepts and array of words, and an element function log(arr, el) { // Makes a copy of that array let copy = [...arr]; // Main loop that `setTimeout` calls over and over... function loop() { // Get the random number const rnd = Math.floor(Math.random() * copy.length); // Get a word by `splicing` it out of the array copy const word = copy.splice(rnd, 1); // Updated the element text content el.textContent = `The computer chose: ${word}`; // If there are no words left in the copy, reset it if (!copy.length) copy = [...arr]; // Call `loop` again setTimeout(loop, 1000); } // Call `loop` loop(); } log(arr, el);
 <div id="demo"></div>

about 4 years ago · Juan Pablo Isaza Relatório

0

La respuesta correcta a su pregunta requiere el conocimiento de dos cosas. setInterval y selectores de consultas de documentos . Para responderte de la manera más simple posible, he dividido la solución a los códigos HTML y JS. En la sección HTML puedes ver el Elemento DOM "p". Tiene una identificación llamada "cosa aleatoria". En CSS nos referimos a ella como #random-thing.

El código JavaScript selecciona este elemento ( Advertencia, puede ser nulo, es por eso que queremos verificar si existe ). Luego podemos cambiar la propiedad del elemento llamada texto interno. También puede cambiarlo usando innerHTML , pero como solo queremos cambiar el contenido del texto, usemos la propiedad innerText.

 const randomThingDomEl = document.getElementById("random-thing"); const things = ['Rock', 'Paper', 'Scissor']; const getRandomThing = () => things[Math.floor(Math.random()*things.length)]; setInterval(() => { if (randomThingDomEl) { randomThingDomEl.innerText = getRandomThing(); } }, 1000);
 <p id="random-thing" />

about 4 years ago · Juan Pablo Isaza Relatório

0

Lo que estás buscando es setInterval()

 const things = ['Rock', 'Paper', 'Scissor']; setInterval(function() { const thing = things[Math.floor(Math.random()*things.length)]; console.log('The computer chose : ' + thing); }, 1000)

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda