如何利用for循环在Math.random中获取10个整数
如下代码
如何利用for循环在下列代码中获取一个长度为10并且数组中的数值各不相同的数组?
下面的题目该怎么做?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Math.random()</title>
</head>
<body>
<script>
function a(n,m){
var ce=m-n+1;
return Math.floor(Math.random()*ce+n);
}
var random1=a(1,100);
document.write(random);//补充代码
</script>
</body>
</html>
对for循环非常苦手,看过视频后也不太理解他,该怎么办?
正在回答
for 循环是您在希望创建循环时常会用到的工具。
下面是 for 循环的语法:
for (语句 1; 语句 2; 语句 3) { 被执行的代码块 }
语句 1 在循环(代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
语句 1
通常我们会使用语句 1 初始化循环中所用的变量 (var i=0)。
语句 1 是可选的,也就是说不使用语句 1 也可以。
您可以在语句 1 中初始化任意(或者多个)值:
实例
for (var i=0,len=cars.length;i<len; i++) { document.write(cars[i] + "<br>"); }
循环整数示例代码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Math.random()</title> </head> <body> <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> </body> </html>
实现思路不止一种,建议亲不要照抄代码,要自己研究一下哦
<script>
function Rad(n,m){
var arr=[];
for(var i=0;i<10;i++){
var x=(m-n)+1;
var r= Math.floor(Math.random()*x+n);
arr.push(r);
}
return arr;
}
var newArr=Rad(0,100);
var max=Math.max.apply(null,newArr);
var min=Math.min.apply(null,newArr);
document.write("随机数组如下"+newArr+"</br></br>");
document.write("数组中的最大值是:"+max+",数组中的最小值是:"+min);
</script>
<script> //获取整数 function getInt(){ var nums = []; var num; var jump; num = Math.floor(Math.random()*101); nums.push(num); while(nums.length<10){//生成长度为10的数组 num = Math.floor(Math.random()*101); for(var i=0;i<nums.length;i++){ if(num[i]==num) { jump = true; } } if(jump) continue;//如果新生成的数与之前存在的相等,则跳过重新进行生成 nums.push(num); } return nums.sort(function(a,b){return b-a;});//返回已经排序的数组 } //获取最大值 function arrMax(arr){ var max = 0; for(var i=0;i<arr.length;i++){ if(arr[i]>max){ max = arr[i]; } } return max; } //获取最小值 function arrMin(arr){ var min = 100; for(var i=0;i<arr.length;i++){ if(arr[i]<min){ min = arr[i]; } } return min; } var newArr = getInt(); document.write(newArr + "<br />"); document.write("这组数中最大的值是:" + arrMax(newArr) + ",最小的是" + arrMin(newArr)); //或者直接输出newArr[0]和newArr[9],即 //document.write("这组数中最大的值是:" + newArr[0] + ",最小的是" + newArr[9]); //另外还有一种reduce方法,我注释掉了,你可以试一下 //document.write("这组数中最大的值是:" + newArr.reduce(function(a,b){return Math.max(a,b);}) + ",最小的是" + newArr.reduce(function(a,b){return Math.min(a,b);})); </script>
给你看一下我的,我觉得可能是生成不同的随机数中的不同,把你难住了,尝试看一下我的,然后写一下自己的,助教老师写得非常好,建议参考老师的。
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星