如何在Math.random()javascript中防止重复数字
我在一个HTML文件中有以下代码(见下文),该文件生成100000-9999999之间的随机数(工作正常),但我想确保它不会重复自身。我如何修改它或添加代码来实现这一点?如何在Math.random()javascript中防止重复数字,javascript,Javascript,我在一个HTML文件中有以下代码(见下文),该文件生成100000-9999999之间的随机数(工作正常),但我想确保它不会重复自身。我如何修改它或添加代码来实现这一点? var randomnumber=Math.floor(Math.random()*99999)+100000 文件写入(随机编号) 您可以跟踪已使用的所有号码: var numbers = []; var randomnumber; do { randomnumber= Math.floor(Math.random
var randomnumber=Math.floor(Math.random()*99999)+100000
文件写入(随机编号)
您可以跟踪已使用的所有号码:
var numbers = [];
var randomnumber;
do {
randomnumber= Math.floor(Math.random()*999999) + 100000;
} while (numbers.includes(randomnumber));
numbers.push(randomnumber);
document.write(randomnumber)
如果ES6有问题(array.prototype.includes
),可以使用array.prototype.indexOf
:
// ...
do {
randomnumber= Math.floor(Math.random()*999999) + 100000;
} while (numbers.indexOf(randomnumber) !== -1);
// ...
所以你不想得到两次随机数?它会自己写一次。不用担心,您是想在同一个请求中阻止,还是想在另一个请求中阻止?不,不是。请停止标记重复项您可以在此处查看:您太快了:D很好的解决方案更好的解决方案是使用
数字。indexOf(randomnumber)!=-1
因为这不需要运行时来实现ES 2016。