麻烦老师帮我检查哪里出错了,谢谢!

来源: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回答

好帮手慕夭夭

2020-02-07

同学你好,老师教你排查错误的方式:

1.按F12查看控制台是否有报错 ,会发现有一个语法错误。后面标记了错误代码的行数。

http://img.mukewang.com/climg/5e3d0bee095034cb19020142.jpg

然后看一下这代码,发现代码少了一个赋值的等号:

http://img.mukewang.com/climg/5e3d0c27099a801305410112.jpg

如下添加等号:

http://img.mukewang.com/climg/5e3d0d0d09b114b302670090.jpg

2.把等号加上之后,页面什么都没有显示,发现代码中并没有使用document.write输出任何内容。那么就加上:

http://img.mukewang.com/climg/5e3d0d16091553be08280277.jpg

3. 内容虽然输出了,但是随机数都是一样的。且生成了11次

http://img.mukewang.com/climg/5e3d0d22094f5c2b03420085.jpg

检查随机数的代码,发现没有放在for循环中,所以并没有随机产生10次不同的数字 。而且i索引从0开始,所以第十个数字索引为9 ,判断时应该小于10 。

http://img.mukewang.com/climg/5e3d0e6209598e1710030502.jpg

整体代码如下:

<!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>

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

1

0 学习 · 40143 问题

查看课程