怎么才能用js实现随机选取10–100之间的10个且不重复的数字存入一个数组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么才能用js实现随机选取10–100之间的10个且不重复的数字存入一个数组?相关的知识,希望对你有一定的参考价值。

参考技术A

代码如下:

// 纯手打,不谢。
var randoms=[];
while (true)

    var isExists = false;
    // 获取一个10–100范围的数
    var random = parseInt(10 + (90 - 10) * (Math.random()))
    // 判断当前随机数是否已经存在
    for (var i = 0; i < randoms.length; i++) 
        if (random === randoms[i]) 
            isExists = true;
            break;
        
    
    // 如果不存在,则添加进去
    if (!isExists)
        randoms.push(random);
    // 如果有10位随机数了,就跳出
    if (randoms.length === 10)
        break;

结果图:

关于js

javascript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。

JS中,输出1-10之间的随机整数,用Math.random()咋搞呢

使用Math.floor(Math.random()*10+1)函数实现。

1、floor():返回小于等于x的最大整数。

2、函数返回一个浮点,  伪随机数在范围[0,1),也就是说,从0(包括0)往上,但是不包括1(排除1)。实现将初始种子选择到随机数生成算法,它不能被用户选择或重置。

实例演示如下:

1、html代码如下,绑定生成函数:

2、函数代码如下:

2、随机演示效果如下:均为1-10之内的整数。

扩展资料:

生成不重复的10个随机数,可以用数组存储已经生成的数,新生成的数据若不在数组中就满足条件。

1、函数代码如下:

2、同理,绑定一个button用于测试:

2、演示:点击按钮直到产生10个数字。一次随机数据生产如下:(10个不重复)

参考资料:

百度百科--math.random()

参考技术A

JavaScript获取[n-m]之间的随机整数简单高效的方法:

var min = 5;
var max = 10;
var rand = Math.floor(Math.random()*(max-min+1))+min;

思路如下:

1. `Math.random() `取0-1之间的随机小数(float);

2. 然后再乘以 n-m 之间的数字个数`(max-min+1)`;

3. 然后两者相乘向下取整 `Math.floor(Math.random()*(max-min+1))`;

4. 最后再加上最小值即可:`Math.floor(Math.random()*(max-min+1))+min`。

下面是演示代码:

<script>
    let min = 5;
    let max = 15;
    let randArr = [];
    for(let i=0;i<100;i++) 
        let rand = Math.floor(Math.random()*(max-min+1))+min;
        randArr.push(rand)
    
    console.log(randArr.join(','))
</script>
> Chrome运行结果
12,14,11,13,15,8,5,15,11,7,15,11,10,11,6,5,6,12,9,
11,11,7,14,14,15,10,13,7,14,14,5,15,5,10,9,5,6,13,5,
6,15,9,11,6,11,9,15,13,14,13,8,5,8,5,10,6,15,12,12,6,
11,10,15,5,13,9,14,7,5,7,11,9,15,10,8,10,11,8,7,
13,5,11,12,12,9,8,12,6,12,6,5,15,15,7,10,9,6,12,6,8

参考技术B <script>
document.write(parseInt(10*Math.random()));  //输出0~10之间的随机整数
document.write(Math.floor(Math.random()*10+1));  //输出1~10之间的随机整数
function RndNum(n)
var rnd="";
for(var i=0;i<n;i++)
rnd+=Math.floor(Math.random()*10);
return rnd;

document.write(RndNum(4));  //输出指定位数的随机数的随机整数
引用部分:
1. 从1开始 至 任意值parseInt(Math.random()*上限+1); 2. 从任意值开始 至 任意值parseInt(Math.random()*(上限-下限+1)+下限);
function fRandomBy(under, over)
switch(arguments.length)
case 1: return parseInt(Math.random()*under+1);
case 2: return parseInt(Math.random()*(over-under+1) + under);
default: return 0;


document.write(fRandomBy(1,100));  //输出指定范围内的随机数的随机整数
</script>
参考技术C Math.randInt(1,10);
在Math里面有函数可以直接产生,不用自己写。
参考技术D var i=Math.random() //获得0-1的随机数
document.write(math.ceil(i*10)) //乘以10并向上去整

以上是关于怎么才能用js实现随机选取10–100之间的10个且不重复的数字存入一个数组?的主要内容,如果未能解决你的问题,请参考以下文章

js实现随机选取[10,100)中的10个整数,存入一个数组,并排序。 另考虑(10,100]和[10,100]两种情况。

PHP程序实现利用rand(1,100)函数产生10个1~100之间的随机数

JS中,输出1-10之间的随机整数,用Math.random()咋搞呢

用lua生成一组10 个 1~100 之间不重复随机数。

js 随机按机率取数

知识点