1. ホーム
  2. javascript

[解決済み] Faker.js 2値間の乱数処理

2022-03-11 04:49:59

質問

簡単なことだと思うのですが、どこにも文書化されていないようなので、ちょっと困っています。

使用中 Faker.js で、乱数を生成するために以下のようにします。

faker.random.number();

2つの数値の間で実行したい場合は、どのようにすればよいのでしょうか?

以下のように試してみました。

faker.random.number(10, 50);

しかし、これでは 0 から 10 . が何を意味しているのかは不明です。 50 がやっていることです。

どなたか、これに対する指示をお願いします。

どのように解決するのですか?

関数にオブジェクトを指定する必要があります。

faker.datatype.number({
    'min': 10,
    'max': 50
});

つまり、数値だけを渡すと、それが最大値として設定されるわけです。最小値はデフォルトで0です。

これは、数値関数の実装です。

this.number = function (options) {

    if (typeof options === "number") {
      options = {
        max: options
      };
    }

    options = options || {};

    if (typeof options.min === "undefined") {
      options.min = 0;
    }

    if (typeof options.max === "undefined") {
      options.max = 99999;
    }
    if (typeof options.precision === "undefined") {
      options.precision = 1;
    }

    // Make the range inclusive of the max value
    var max = options.max;
    if (max >= 0) {
      max += options.precision;
    }

    var randomNumber = options.precision * Math.floor(
      mersenne.rand(max / options.precision, options.min / options.precision));

    return randomNumber;

  }

更新情報

最新バージョンでは、関数の場所を faker.random.number から faker.datatype.number , https://github.com/Marak/faker.js/issues/1156