Felix Christo
Felix Christo

Reputation: 287

Random number for given counts

I am generating 4 digit random number by using Math.floor(Math.random() * 9999). Now I have another requirement. I have to get the number of random number to be generated in textbox. eg: If they enter 5 in textbox it has to return 5 four-digit random number. Any idea how to do it? any reference?

Upvotes: 0

Views: 80

Answers (3)

Richard Uie
Richard Uie

Reputation: 161

Call getRandoms with n = 5, and high = 9999. Handle the 5-element return array as you wish.

// pseudo-randomly generate an integer in the range low to high
function getRandom( high, low ) {
    // default low is 0
    if ('undefined' == typeof low) low = 0;
    var range = high - low + 1;
    var r = Math.floor( range*Math.random() + .5);
    return Math.min(low + r, high);
};

// get n pseudo-random number in the range low to high
function getRandoms( n, high, low ) {
    // default low is 0
    if ('undefined' == typeof low) low = 0;
    var randoms = new Array();    // initialize return
    for (var i = 0; i < n; i++) {
        randoms.push(getRandom(high, low));
    }
    return randoms;
};

Upvotes: 0

Harun Or Rashid
Harun Or Rashid

Reputation: 5937

You can simply call your 4 digit random number generator function() n time (n is given number in input field) as below:

for(let i=1;i<=this.n;i++) {
  this.ara.push(this.random());
}

random() {
  return Math.floor(Math.random()*(9999-1000) + 1000);
} 

See this typescript implementation (Angular).

Upvotes: 0

baao
baao

Reputation: 73241

Simply call the method a couple of times, depending on input. Note that you need to use below random number creation method instead of yours to guarantee 4 digit numbers.

function getRand() {
  return Math.floor(Math.random() * (9999 - 1000) + 1000);
}

document.getElementById('btn').addEventListener('click', () => {
  const length = document.getElementById('foo').value;
  const numbers = Array.from({length}, getRand); 
  
  document.getElementById('bar').innerText = numbers.join(', ');
});
<input id="foo" type="number">
<button id="btn">Get</button>
<div id="bar"></div>

Upvotes: 2

Related Questions