Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Math.random()javascript中防止重复数字_Javascript - Fatal编程技术网

如何在Math.random()javascript中防止重复数字

如何在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

我在一个HTML文件中有以下代码(见下文),该文件生成100000-9999999之间的随机数(工作正常),但我想确保它不会重复自身。我如何修改它或添加代码来实现这一点?

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。