Faker.js random number between 2 values

K20GH picture K20GH · Aug 14, 2015 · Viewed 47.2k times · Source

This one is driving me a little mad, I'm sure it's simple but it doesn't seem to be documented anywhere.

Im using Faker.js and the following to generate my random number:

faker.random.number();

Works great, now if I want to do it between 2 numbers, how would I go about this?

I tried the following:

faker.random.number(10, 50);

However, that just gives me numbers from 0 to 10. No idea what the 50 is doing.

Can anyone give me some directions to this please.

Answer

cre8 picture cre8 · Aug 14, 2015

You need to give an object to the function:

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

So if you just pass a number, it will set it as the max value. The min value is 0 by default.

This is the implementation of the number function :

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;

  }