麻烦老师帮我检查哪里出错了,谢谢!
来源:4-8 编程练习
胜己
2020-02-07 15:02:46
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>Math.random()</title> </head> <body> <script> //补充代码 function getRandom(n,m){ var arr[], random=Math.floor(Math.random()*(m-n+1)+n), randomSort=arr.sort(function(n,m) {return m-n}); for(i=0;i<=10;i++){ arr[i]=random; } } getRandom(0,100); </script> </body> </html>
1回答
同学你好,老师教你排查错误的方式:
1.按F12查看控制台是否有报错 ,会发现有一个语法错误。后面标记了错误代码的行数。
然后看一下这代码,发现代码少了一个赋值的等号:
如下添加等号:
2.把等号加上之后,页面什么都没有显示,发现代码中并没有使用document.write输出任何内容。那么就加上:
3. 内容虽然输出了,但是随机数都是一样的。且生成了11次
检查随机数的代码,发现没有放在for循环中,所以并没有随机产生10次不同的数字 。而且i索引从0开始,所以第十个数字索引为9 ,判断时应该小于10 。
整体代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Math.random()</title>
</head>
<body>
<script>
//补充代码
function getRandom(n, m) {
var arr = [];
// random = Math.floor(Math.random() * (m - n + 1) + n),
// randomSort = arr.sort(function(n, m) { return m - n });
// for (i = 0; i <= 10; i++) {
for (i = 0; i <10; i++) {
// 每一次循环都会重新执行一次,会产生不同的随机数
random = Math.floor(Math.random() * (m - n + 1) + n);
arr[i] = random;
}
// 当for循环结束,arr中已经有了10个不同的随机数,然后对数组进行排序。
arr.sort(function(n, m) { return m - n });
document.write(arr)
document.write("<br>最大值:"+arr[0]+",最小值:"+arr[9])
}
getRandom(0, 100);
</script>
</body>
</html>
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题