【问题标题】:Faker.js random number between 2 valuesFaker.js 两个值之间的随机数
【发布时间】:2015-11-07 18:14:09
【问题描述】:

这让我有点生气,我敢肯定它很简单,但似乎没有任何地方记录。

我使用Faker.js 和以下来生成我的随机数:

faker.random.number();

效果很好,现在如果我想在两个数字之间进行,我该怎么做?

我尝试了以下方法:

faker.random.number(10, 50);

但是,这只是给了我从 010 的数字。不知道50 在做什么。

谁能给我一些指导。

【问题讨论】:

  • Idk 是“伪装的方式”,但你可以这样做 faker.random.number(40) + 10;
  • 为什么不用简单的js:Math.floor((Math.random() * 50) + 10);
  • @DasBeasto 这行不通,因为我能得到的最小值总是 10
  • @mimo 因为我在使用 Faker
  • @K20GH 如果你想要 10 到 50 之间,你想要的最小值不是 10 吗?

标签: javascript faker


【解决方案1】:

你需要给函数一个对象:

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

所以如果你只是传递一个数字,它会将它设置为最大值。最小值默认为0。

这是number函数的实现:

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.numberhttps://github.com/Marak/faker.js/issues/1156

【讨论】:

  • in the demo pageAPI docs 都没有提到可以通过这种方式传入参数的事实
  • 最新版本已更改,而不是faker.random,应该使用faker.datatype
  • 上述不推荐使用的语法
  • @HosMercury 感谢您的指出,更新了我的答案!
【解决方案2】:

来自Fakerjs github

整数伪造者。 random.number(min,max) 0 到“范围”之间的随机数。

faker.random.number(100); //returns 92
faker.random.number({min:5, max:10}); //returns 9

小数伪造者。 finance.amount(min,max,decimal places) "min" 和 "max" 之间的随机数,包括小数到 X 位。 p>

faker.finance.amount(9000,10000,4); //returns 9948.8363

布尔伪造者。 random.boolean()

faker.random.boolean(); //returns true

Array Element faker. random.arrayElement(array[]) 从可能值的数组中选择一个随机元素。这个函数对于创建自定义的可能性列表很有用。

faker.random.arrayElement(["one","two","three","four"]); //returns "two"
var phTyp = faker.random.arrayElement(["cell","work","home"]); //returns "work"

Object Element faker. random.objectElement(object{}) 从对象中选择随机元素,选择值而不是键。这个函数对于创建自定义的可能性列表很有用。

faker.random.objectElement({one: 1, two: 2, three: 3}); //returns 3

【讨论】:

    【解决方案3】:

    我在应用程序faker@5.5.3 中运行faker.random.number 时遇到此警告。

    弃用警告:faker.random.number 现在位于 faker.datatype.number

    方法已被移动。 faker.datatype.number() 将替换为更好的解决方案。

    faker.datatype.number(100); // return 88
    faker.datatype.number({ min: 5, max: 10 }); // return 7
    

    【讨论】:

    • 是的,他们已经更改了库,现在这是最好的答案。谢谢。
    【解决方案4】:

    尝试传递如下所示的哈希

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

    【讨论】:

    • 请添加关于为什么这是正确答案的附加上下文。
    • 嘿@DavidL,它认为它已经足够清晰了。 #保持简单
    猜你喜欢
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 2018-09-18
    • 2023-03-19
    • 1970-01-01
    • 2014-03-20
    • 2012-04-25
    • 1970-01-01
    相关资源
    最近更新 更多