JavaScript-Ausdruck, um in jedem Fall eine 5-stellige Zahl zu generieren

69

Für meine Selentests benötige ich einen Werteanbieter, um in jedem Fall eine 5-stellige Nummer zu erhalten. Das Problem mit Javascript ist, dass die API von Math.randomnur die Erzeugung eines 0.Start-Floats unterstützt. Also muss es zwischen 10000und sein 99999.

Es wäre also einfach, wenn es nur 0.10000und höher erzeugen würde , aber es würde auch erzeugen 0.01000. Dieser Ansatz ist also nicht erfolgreich:

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

Ist es möglich, in jedem Fall eine 5-stellige Zahl zu generieren (in einem Ausdruck!)?

Christopher Klewes
quelle

Antworten:

162

Wie wäre es mit:

Math.floor(Math.random()*90000) + 10000;
Rubens Farias
quelle
Das Hinzufügen des 10000 am Ende bewirkt nichts.
Ben Brown
7
Überprüfen Sie es erneut, @BenBrown. Ohne den 10000 können Sie Zahlen mit weniger als 5 Ziffern haben.
Rubens Farias
@AkinHwan Dies ist völlig vom Thema ..
Paul McBurney
56

Ja, Sie können Zufallszahlen in einem bestimmten Bereich erstellen:

var min = 10000;
var max = 99999;
var num = Math.floor(Math.random() * (max - min + 1)) + min;

Oder vereinfacht:

var num = Math.floor(Math.random() * 90000) + 10000;
Guffa
quelle
21

Wenn Sie beispielsweise eine Postleitzahl generieren möchten und es Ihnen nichts ausmacht, Nullen zu führen, solange es sich um 5 Ziffern handelt, können Sie Folgendes verwenden:

(""+Math.random()).substring(2,7)
Miaubiz
quelle
Ich bin gespannt, wie sich die Leistung im Vergleich zu den anderen Methoden verhalten würde. Dieser gefällt mir, aber es scheint, dass die String-Konvertierung und dann die Teilzeichenfolge teuer sein könnten.
Danation
Mmm, es Math.random()wird nicht garantiert, dass mindestens N Ziffern zurückgegeben werden. Ich habe es gerade mit Firefox versucht, (""+Math.random()).substring(2,7)kann XYZ oder XYWZ zurückgeben, was 3/4 Ziffern ist.
Herr Shunz
Ich benutze es und weine
Alex Shtromberg
1

Mit der folgenden Funktion können Sie eine zufällige Ganzzahl einschließlich einer beliebigen Min- und Max-Zahl erhalten:

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

Weitere Beispiele und andere Anwendungsfälle finden Sie in der Math.random MDN-Dokumentation .

Tarek
quelle
0

Was ist damit?

var generateRandomNDigits = (n) => {
  return Math.floor(Math.random() * (9 * (Math.pow(10, n)))) + (Math.pow(10, n));
}

generateRandomNDigits(5)

SanS
quelle