如何让这个脚本返回数字0-9而不是1-10
How to get this script to return numbers 0-9 instead of 1-10
我正试图让数字0-9随机排列。例如:2,4,0,1,3,5,9,7,8,6…目前它从1开始,而不是0。这就是我正在使用的-(我对js的了解是最低的)
<script type="text/javascript" language="Javascript">
function pick(n, min, max){
var values = [], i = max;
while(i >= min) values.push(i--);
var results = [];
var maxIndex = max;
for(i=1; i <= n; i++){
maxIndex--;
var index = Math.floor(maxIndex * Math.random());
results.push(values[index]);
values[index] = values[maxIndex];
}
return results;
}
function go(){
var running = true;
do{
if(!confirm(pick(10, 0, 9))){
running = false;
}
}while(running);
}
</script>
感谢您的投入。。。
为了可读性和更容易的调试,在这里创建更多的函数可能更有益。
// Creates the array [min, min+1, ..., max-1, max]
function createRange(min, max) {
var range = [];
while (min <= max) {
range.push(min);
min++;
}
return range;
}
// Fisher-Yates Shuffle from http://bost.ocks.org/mike/shuffle/
// but you can replace this with your own shuffler if you want
function yatesShuffle(array) {
var m = array.length, t, i;
while (m) {
i = Math.floor(Math.random() * m--);
t = array[m];
array[m] = array[i];
array[i] = t;
}
return array;
}
// Pick `n` numbers from the range `[min, ..., max]`.
// `n` must be less than or equal to `(max - min)`.
function pick(n, min, max) {
var range = createRange(min, max);
var shuffled = yatesShuffle(range);
return shuffled.slice(0,n);
}
function go(){
var running = true;
do{
if(!confirm(pick(10, 0, 9))){
running = false;
}
}while(running);
}
相关文章:
- Regex表示10位数字,其中没有't允许所有零、所有单个no和序列号
- 在我的网站上创建一个在1-10之间不断变化的数字时遇到了问题.Javascript
- 把两个数字加在一起,得到5+10=510,而不是15
- 将数字四舍五入到最接近的10's放置javascript
- 在没有内置 Javascript 函数的情况下将基数 10 转换为其他基数 2 的数字
- 限制“;文本字段“;以magento形式只接受数字和最多10个数字
- Regex匹配除以7开头的10位数字以外的任何一组数字
- 精确匹配10个边界未知的数字
- 电话正则表达式,但希望使所有 10 位数字都相同无效
- 如果数字超过 10,则将数字重置为 1
- 将数字 10 转换为 0.10 浮点数
- 列出偶数 1 到 10,每个数字乘以 2
- 在小于 10 的数字前面加上“0”
- 如何限制用户在输入元素中键入 10 位数字
- 字符串中包含的大型基数 10 的数字的最佳压缩
- 如果数字在两个数字之间加/减 10 添加类
- 正则表达式至少包含 10 个字符,包括 1 个数字和一个大写字母
- 为什么 if(数字 <=10) 不起作用
- 在循环中使用javascript生成1000个随机的10位数字
- 为什么对于可被10整除的数字,字符串到int之间的转换不能像预期的那样工作