10/27
2020
如果在 JavaScript 中使用 Math.random().toString(16)
这种方法来生成随机字符串,字符串的长度并不固定。我测试了一些数据,发现最小可能是 9 位。(或许最小是 8 位)
let i = 0;
let result = new Array(20).fill(0)
while (i < 100000000) {
const a = Math.random().toString(16)
result[a.length] = ++result[a.length]
i++
}
console.log(result)
上面代码运行了一亿次,统计每次字符串的长度。结果如下:
// 长度: 次数
9: 6
10: 91
11: 1412
12: 22948
13: 365715
14: 5861132
15: 93748696
结果均在 9 - 15 位之间。
如果 Math.random().toString(number)
的参数不同,那么就需要重新测试。
所以如果希望这种方法生成的字符串的长度一致,那么就需要进行测试,并且裁剪字符串(长度不大于最小长度)。
10亿次有可能会出8位数哦,以此类推...