帮我解决一下

来源:7-16 随机数 random()

qq_禁灭生_03414590

2016-07-29 12:58

使用random()随机取得0-10之间的数值。使用round()对数值进行四舍五入。 如果我想抽随机10个数,但又不重复怎么搞?

写回答 关注

3回答

  • 沐枫自然
    2016-07-29 16:09:48
    已采纳

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8">

    <title>JS随机数</title>

    <style type="text/css">

    h1{text-align: center;}

    p{ text-align: center; font-size: 36px;}

    </style>

    </head>


    <body>

    <h1>JS随机数</h1><hr />

    <p id="conA"></p>

    <p id="conB"></p>

    </body>

    <script type="text/javascript">


    setTimeout(function(){ window.location.reload();},1000);//每隔1秒刷新1次页面

    //Math.round() 把一个数字舍入为最接近的整数。

    //math.random()取得某个范围内的随机数

    var Array = [] || new Array();

    var mupiao;

    Array[0] = Math.round((Math.random()) * 10); //输出的值的范围  

    for(var i = 1; i < 10; i++)  //输出的个数(这里是10个数)

    {

    mupiao = Math.round((Math.random()) * 10);

    for(var a = 0; a < Array.length; a++) 

    {

    while(Array[a] == mupiao) 

    {

    mupiao = Math.round((Math.random()) * 10);

    }

    }

    Array[a] = mupiao;

    }

    //用js对象的特性,如何去重复:

    //第一步:把数组转成一个js对象。

    //第二步:把数组中的值,变成js对象中的 key。

    //第三步:把这个对象 再还原成数组。


    //该方法把 组数 转为 对象

    var toObject = function(arr)

    {

    var obj = {} //创建一个私有(在函数中)的对象

    for(var i = 0; i < arr.length; i++)

    {

    obj[arr[i]] = true; //这样就把数组转为对象了(就是把循环出来的数组 放到 对象中)

    }

    return obj;

    }

    //该方法把 对象 转为 数组

    var keys = function(obj)

    {

    var arr = []; //创建一个私有(在函数中)的数组

    for(var i in obj)

    {

    if(obj.hasOwnProperty(i)) //判断这个属性是否属于obj的,注hasOwnProperty是js对象中的方法

    {

    arr.push(i);//把循环出来的对象追加到数组中

    }

    }

    return arr;

    }

    //合并方法,去除数组中的重复项

    var uniq = function(arrs)

    {

    return keys(toObject(arrs));//把数arrs放到toObject方法中,然后在把toObject方法入到keys方法中并返回,就OK了。

    }


    document.getElementById('conA').innerHTML = Array;//这是原来的随机数组

    document.getElementById('conB').innerHTML = uniq(Array); //这是去重复后的随机数组

    </script>


    </html>


    qq_禁灭生...

    非常感谢!

    2016-08-17 21:29:59

    共 1 条回复 >

  • DayLightLee
    2016-08-11 11:51:56

    用if()语句把取得的随机数和前面的比较,如果相同则不输出,并且array.length++

  • 水里有条鱼
    2016-07-29 13:36:41

    var array = new Array();

    var num;

    array[0]=Math.round((Math.random())*100);

    for(var i=1;i<10;i++){

    num=Math.round((Math.random())*100);

    for(var a=0;a<array.length;a++){

            while(array[a]==num) {num=Math.round((Math.random())*100);}

    }

    array[a]=num; 

    }

    document.write(array);

    91,69,5,82,83,79,93,62,88,7

    水里有条鱼 回复q_Amil...

    有道理

    2016-08-03 21:44:42

    共 7 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题