how to control number generator

Viewed 57

I want to create number generator but i want to control it better so i want to first generate number 30 and every next number should be in the range from 1 to 1000. I have done it but the last part dont work, it every time show 30. Can you help me? Thanks! (The code is ready to edit so there is everything good i just need some advice how to edit code to shnow second and every next number in range from 1 to 1000! THANKS!

var button = document.querySelector("button");
var number = document.querySelector("#number");
const nRuns = 12;
const timeout = 100;
let iterator = 0;

button.addEventListener( "click", textC);

function textC(){
    number.textContent = `${Math.floor(Math.random() * 1000) + 1}\n`;
    iterator += 1;
    if (iterator < nRuns) {
      setTimeout(textC, timeout)
    } else{
      iterator = 0;
      number.textContent = 30;
    }
}
<p id="number"></p>
<button>Generate</button>

2 Answers

this should work.

var button = document.querySelector("button");
var number = document.querySelector("#number");
const nRuns = 12;
const timeout = 100;
let iterator = 0;
let random = false;

button.addEventListener( "click", textC);

function textC(){
    let n = Math.floor(Math.random() * 1000) + 1;
    number.textContent = `${n}\n`;
    iterator += 1;
    if (iterator < nRuns) {
      setTimeout(textC, timeout)
    } else{
      iterator = 0;
      number.textContent = random ? n : 30;
      random = true;
    }
}
<p id="number"></p>
<button>Generate</button>

You need to switch the start and end values.

var button = document.querySelector("button");
var number = document.querySelector("#number");
const nRuns = 12;
const timeout = 100;
let iterator = 0;

button.addEventListener( "click", textC);

function textC(){
    number.textContent = iterator === 0
        ? 30
        : Math.floor(Math.random() * 1000) + 1;

    iterator++;
    if (iterator < nRuns) {
        setTimeout(textC, timeout);
    } else {
        iterator = 0;
    }
}
<p id="number"></p>
<button>Generate</button>

Related