我想要得到一个随机的整数,它是两个给定值之间的一个整数,并且尚未用javascript提取。 要做到这一点,我使用下面的代码:获取奇怪值的随机数字提取器
var extracted = [];
function rand(){
var from = document.getElementById('from').value;
var to = document.getElementById('to').value;
var number = Math.floor(from) + Math.floor(Math.random() * to);
var alreadyextracted = (extracted.indexOf(number) > -1);
if(alreadyextracted){
\t var maximum = Math.floor(to) - Math.floor(from);
\t var count = extracted.length;
if(count > maximum){document.getElementById('result').innerHTML='All numbers have been extracted.';}
\t else{rand();}
}
else{document.getElementById('result').innerHTML=number;
extracted.push(number);
if(extracted[0] == number){var content = number;}
else{var before = document.getElementById('got').innerHTML;
var content = number + ', ' + before;}
document.getElementById('got').innerHTML= content;
}
}
From: <input id="from" value="1">
To: <input id="to" value="10">
<input type="button" value="Extract" onclick="rand()">
<div id="result"></div>
<div id="desc">Already extracted numbers:</div>
<div id="got"></div>
它工作正常,如果我把一个“从”值低于10,但是,如果是较大的,它会得到一个完全随机的整数,并随机地说,即使它不是真的,所有的数字都被提取出来。
我没有看到任何东西在Firefox的控制台。
可能是什么问题?
获得随机数字和忽略dups几乎从来没有任何项目真正需要。你想要的不是随机数字,而是一组随机数字的特定数字。因此,首先建立一个集合:创建一个整个范围的数组,然后从中提取一个数组,随机索引数组。 – 2014-12-02 20:15:19
@LeeDanielCrocker你是对的,感谢您的评论:) – Stubborn 2014-12-02 20:17:02