Generare numere aleatoare in JavaScript

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
constantin
Mesaje: 2

Generare numere aleatoare in JavaScript

Salutare!
Cum ar trebui scris un cod pentru a genera un numar de genul: 0729 adica un numar din 4 cifre diferite (de la 0 la 9)?
Mutumesc frumos!
O zi buna sa dea Domnu'!

MarPlo
Salut

1. Functia randomNr() din urmatorul exemplu returneaza un numar aleator intre un minim si maxim dat.
Pote returna numere cu un numar diferit de caractere.

Cod: Selectaţi tot

<script>
//Returns a random integer between min (inclusive) and max (inclusive)
function randomNr(min, max){
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

//Test
var nr_al = randomNr(1, 9999);
alert(nr_al); //78 /355 /7098
</script>

2. Functia randomNrDigits() din urmatorul exemplu returneaza un numar aleator, cu un numar de caractere specificat.
Numarul returnat poate avea cifre care se repeta.

Cod: Selectaţi tot

<script>
//Returns a random integer with a specified number of digits (nd)
function randomNrDigits(nd){
  var n0 =1;
  for(var i=1; i<nd; i++) n0 +='0';
  return Math.floor((1*n0) + Math.random() * (9*n0));
}

//Test
var nr_al = randomNrDigits(4);
alert(nr_al); //3424
</script>

3. Functia randomNrUniqueDigits() din urmatorul exemplu returneaza un numar aleator cu un numar de caractere specificat.
Numarul returnat va contine cifre care nu se repeta.

Cod: Selectaţi tot

<script>
//Returns a random integer with digits that not repeat, with specified number of digits (nd)
function randomNrUniqueDigits(nd){
  var ar_nr =[0,1,2,3,4,5,6,7,8,9];
  for(let i = ar_nr.length -1; i >0; i--){
    let j = Math.floor(Math.random() * (i + 1));
    [ar_nr[i], ar_nr[j]] = [ar_nr[j], ar_nr[i]];
  }

  return ar_nr.splice(1, nd).join('')*1;
}

//Test
var nr_al = randomNrUniqueDigits(4);
alert(nr_al); //5940
</script>

constantin
Multumesc mult! Si daca am ajuns in ultima zi a anului 2017 eu iti urez din toata inima:
La multi ani cu sanatate!

Subiecte similare