JavaScript

JavaScriptで特定の範囲の整数の乱数を取得する

前回、Python で乱数を取得して前ゼロ(ゼロパディング)する方法を紹介しました。

Pythonで特定の範囲の整数の乱数を取得するどの言語を使っていても遭遇するのが乱数の生成。 ビジネスロジック以外でも、シナリオテストや負荷試験のロジックを書く機会が増えてから使う...

今回は、Chrome 拡張の Postman の「Pre-request Script」で同じくランダムな値を生成したかったのでやり方を紹介します。

Postman と Newman を利用した自動テストについては過去に紹介しているのでこちらもご覧ください。

PostmanとNewmanを使って複数のAPIを連続して実行させるこれまでは、提供されている API を利用するケースが大半でしたが、最近は API を自分で作成する機会が増えてきました。 どちらの立...

Math.random()

JavaScript で乱数を生成する場合は Math.random() ですね。

ただ、これだと 0 から 1 の間の数値が生成されるので、ここに一定の数を掛けて小数部分を切り捨てます。

例えば、10000000 を掛けて切り捨てると 0.4998795726625609 は 4998795 になりますよね。

桁数を固定する

上記では 7 桁の数値を期待して 10000000 を掛けましたが、乱数によっては 0.0012345 みたいな値もあるので必ず 7 桁の数値になるとは限りません。

そこで、前ゼロで不足部分を補います。

JavaScript には format 関数のようなものが見当たらなかったので、前ゼロ用の文字列を連結して右側から 7 文字取得するとします。

1以上の値を生成する

無事に前ゼロで埋めた数値文字列を取得することができましたが、全てゼロになる文字列は避けたいので 1 から 9999999 の中から乱数を発生させます。

9999999 だとわかりにくいので、1 から 9 を例にロジックを組んでみます。

これをループさせてブラウザで確認してみます。

JavaScript のオンライン実行確認なら、以下のサイトなどが便利ですね。

ここで、html に以下を記述して実行してみます。

JS 部分に書いたら改行がうまく入らなくて html にしてみました。
(¥n でも ¥r でも反応してくれなかったのですよね・・・)

実行結果は以下の通りです。

1から9999999までの値を生成する

よって、ロジックを以下のように変更して 1 から 9999999 までの 7 桁の数値文字列を生成します。

ちょっと面倒ですが関数化しておけば楽ですね。

jQuery などのライブラリで便利な機能が用意されていると良かったのですが・・・。

自分のサイトで試す場合は、console.log() を入れて Chrome などのコンソールで確認すれば OK です。