javascript - 如何根据提供的最小和最大字符范围在 Javascript 中生成随机数

标签 javascript node.js random variable-length

我有一个有点奇怪的要求,我需要生成用户给出的长度的随机数。用户可以给出最小长度最大长度,我需要生成由该范围之间的字符长度组成的随机数。

例如,如果最小长度6并且最大长度10那么我需要生成字符数必须在 610 范围之间的随机数。对于此示例,以下可以是随机生成器:

123456,
7654321,
12345678,
987654321,
5432109876, etc.

像这样,随机生成器必须包含提供的输入之间的长度。

我知道如何在一定范围内基于固定字符长度创建随机数,但我不知道如何基于可变长度创建随机数。我尝试寻找答案,但大多数答案都是基于固定长度和固定范围,无法找到我正在寻找的精确匹配。

如果有人能帮助我解决这个问题,那就太好了。

最佳答案

您可以生成一个数组(Array.from(),长度在 minLenmaxLen 范围内随机选择),并用 1 到 9 范围内的随机数字填充该数组,然后 Array.prototype.join()将数组转换为字符串并转换为数字:

const randomNum = (minLen, maxLen) => 
                    +Array
                      .from(
                        {length: 0|Math.random()*(maxLen-minLen+1)+minLen},
                        () => 0|Math.random()*9+1
                      )
                      .join('')
                      
console.log(randomNum(3,7))

关于javascript - 如何根据提供的最小和最大字符范围在 Javascript 中生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62468165/

相关文章:

javascript - 将对象插入数组会更改数组 Javascript 中的现有元素

javascript - 为什么我的 hello world node.js tcp 服务器没有获得任何连接?

javascript - Node WriteFile 不使用下划线编写我需要的对象。写入整个对象

来自数据类型的 Haskell 随机数

javascript - 清除键入时的表单验证错误

javascript - 我如何使用 Charles Proxy 来监控 Virtual Box VM 中来自 IE 8 的流量?

javascript - TypeError : You may only yield a function, promise ,生成器...当产生 app.listen() 时

基于 round(1 + rand() * x) 的 MySQL 查找产生 NULL 和多个结果

java - 在并行执行模拟中找到正确的随机种子数

javascript - 使用 JavaScript 更改背景后 CSS 背景样式停止工作