Domanda

per i miei test selenio ho bisogno di un fornitore di valore per ottenere un numero di 5 cifre in ogni caso. Il problema con javascript è che l'API di Math.random supporta solo la generazione di un galleggiante 0. partenza. Così deve essere compresa tra 10000 e 99999.

Quindi, sarebbe facile se solo si genera 0.10000 e superiori, ma genera anche 0.01000. Quindi, questo approccio non riesce:

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

E 'possibile generare un numero a 5 cifre in tutti i casi (in un'espressione!)?

È stato utile?

Soluzione

Che dire:

Math.floor(Math.random()*90000) + 10000;

Altri suggerimenti

Sì, è possibile creare numeri casuali in un dato intervallo di:

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

In alternativa semplificata:

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

se si desidera generare dire una codice postale, e non mente zeri iniziali finché si tratta di 5 cifre che è possibile utilizzare:

(""+Math.random()).substring(2,7)

È possibile ottenere un numero intero casuale compreso di un dato min e max numeri utilizzando la seguente funzione:

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

Per ulteriori esempi e altri casi d'uso, checkout il Math.random MDN documentazione .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top