用js实现随机选取10–100之间的10个且不重复的数字,存入一个数组。

如题所述

代码如下:

// 纯手打,不谢。
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。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-15
// 纯手打,不谢。
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;
}

附:

本回答被网友采纳
第2个回答  2016-06-03
var arr = new Array();//存储10个随机数的数组
for (var i = 9; i >= 0;) {
var num = fRandomBy(10, 100);
//数组中不存在该数据则进行插入到该数组中
if (arr.indexOf(num)==-1) {
arr.push(num);
i--;
}
};
// console.log(arr);
//获取10到100的随机数
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;
}
}
第3个回答  2016-06-03

前面几个都可以,我只是来写出我的答案的。。

var arr = (function(){
    var _arr = [];
    for(var i=1;i<=100;i++){
_arr.push(i);
}
    return _arr;
})().sort(function(a,b){
    return Math.random()-0.5;
}).slice(0,10);