js math.random 整数有重复的如何去掉?

js math.random 整数有重复的如何去掉?

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>string之大小写</title>

</head>

<body>

<script>

var arr=[];

var newarr=[];

function getarr(n,m){

var number=Math.floor(Math.random()*(m-n+1)+n);

return number;

}

getarr(0,100);

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

newarr.push(getarr(0,100));

newarr.sort(function(a,b){return(a-b)});

}

console.log(newarr);

document.write("最小值:"+ newarr[0]+"</br>");

document.write("最大值:"+newarr[9]);

</script>

</body>

</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
小丸子爱吃菜 2017-10-10 12:07:42

document.write("最大值:" + arr[arr.length-1]);

小丸子爱吃菜 2017-10-09 18:44:04
var arr = ['abc', 'abcd', 'sss', '2', 'd', 't', '2', 'ss', 'f', '22', 'd',"22"];
    //定义一个新的数组
    var s = [];
    // 遍历数组
    for (var i = 0; i < arr.length; i++) {
        if (s.indexOf(arr[i]) == -1) { //判断在s数组中是否存在,不存在则push到s数组中
            s.push(arr[i]);
        }
    }
    console.log(s);

上面的代码是数组去重的一个小demo,可以参考一下。

上面同学说的方法也是很不错的,定义一个空数组,再循环中,每生成一个随机数,就将随机数跟这个数组中已经被放进去的随机数进行比较,如果有一样的,就不放进去,没有一样的再放进去。自己也可以试一下

祝学习愉快!

  • 提问者 web_東 #1
    老师,那新的问题又来啦。 那新的数组的长度会不固定, <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>string之大小写</title> </head> <body> <script> var arr=[]; var newarr=[]; function getarr(n,m){ var number=Math.floor(Math.random()*(m-n+1)+n); return number; } getarr(0,100); for(var i=0;i<10;i++){ newarr.push(getarr(0,100)); if (arr.indexOf(newarr[i])== -1){ arr.push(newarr[i]); } arr.sort(function(a,b){return(a-b)}); } console.log(newarr); console.log(arr); document.write("最小值:"+arr[0]+"</br>"); document.write("最大值:"+arr[9]); </script> </body> </html>
    2017-10-09 22:30:25
  • 清丶辞 回复 提问者 web_東 #2
    因为代码中,如果随机生成了一个之前已经存在的值,那么不做任何操作,就会导致浪费了一次循环的次数,就会导致数组的长度不固定。因此应该需要在比较的时候,如果发现和之前的值是一样的,那么在这一次循环中重新来生成新的值再来比较,直到是不一样的值插入
    2017-11-13 15:46:58
提问者 web_東 2017-10-09 18:14:43

还是没有思路。

没有马甲线的安琪拉 2017-10-05 19:49:04

可以先定义一个数组,当每次产生随机数的时候,先跟数组中已经保存的数据对比,如果数据已经存在了,就重新生成,如果没存在就保留下来。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
JavaScript基础入门 2018
  • 参与学习       547    人
  • 提交作业       206    份
  • 解答问题       640    个

JavaScript作为前端学习中的一个重要组成部分,本课程将带领你从最基础的语法开始,学习js的流程控制语句、函数、内置对象、DOM基础、DOM事件、BOM基础以及经典的js案例--轮播图。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师