2406 votes

Générer de la valeur aléatoire entre deux nombres en Javascript

Est-il un moyen pour générer un nombre aléatoire dans l'intervalle de 1 à 6 (c'est à dire 1,2,3,4,5,6) en JS?

3117voto

Francisc Points 11926
function randomIntFromInterval(min,max)
{
    return Math.floor(Math.random()*(max-min+1)+min);
}

Ce qu'il fait "extra" est-il permet à des intervalles aléatoires qui ne commencent pas avec 1. De sorte que vous pouvez obtenir un nombre aléatoire de 10 à 15 par exemple. La flexibilité.

2485voto

Mike Points 5317

Avertissement: Cette réponse peut produire des résultats inattendus. Par exemple, si le nombre minimum est de 2, les valeurs retournées peuvent inclure 7 au lieu de la demande de max 6. Voir ce JSFiddle pour des exemples vivants.


Si vous vouliez obtenir entre 1 et 6, vous devez mettre:

Math.floor(Math.random() * 6) + 1

Essayer cela et voir si cela fonctionne pour vous.

459voto

Lior Points 1151

À partir du Mozilla Developer Network documentation:

// Returns a random integer between min and max

function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

Quelques exemples:

// 0 - 10
return Math.floor(Math.random() * 11);

// 1 - 10
return Math.floor(Math.random() * 10) + 1;

// 5 - 20
return Math.floor(Math.random() * 16) + 5;

101voto

Vishal Points 4548

D'autres solutions:

  • (Math.random() * 6 | 0) + 1
  • ~~(Math.random() * 6) + 1

28voto

ryebr3ad Points 605
var x = 6; // can be any number
var rand = Math.floor(Math.random()*x) + 1;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X