老师帮忙检查一下代码?有没有需要优化的地方

老师帮忙检查一下代码?有没有需要优化的地方

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Math.random()</title>
</head>
<body>
<script>
    var arr=[]
    for(var i=0;i<10;i++){
        arr[i]=Math.floor(Math.random()*10*10+1)
    }
    arr.sort(function str(a,b){return b-a;})
    document.write(arr)
    document.write("这组数中最大的值是:"+arr[0]+"这组数中最小的值是:"+arr[9])

    //补充代码
</script>
</body>
</html>


正在回答

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

3回答

同学你好,理论上你的想法是正确的。但是计算机的发明,就是为了进行庞大的计算,因此“计算方法慢”这种情况可能不会很明显的体现出来。所以说,这两种方法都是可以的。

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

卡布琦诺 2020-01-11 16:34:14

同学你好,首先你的代码实现的效果是正确的,其次,同学的理解是正确的,上面的代码是先循环出所有的数,放在数组中,然后再进行排序;下面的代码是每循环一次进行一次排序。这是两种不同的实现方法,每个人的逻辑思维不同,所以编写的代码也不是完全相同的。

如果我的回答帮助了你,希望采纳,祝学习愉快!

  • 提问者 陈立天 #1
    那下面的代码每循环一次进行一次排序是不是有点多余,如果需要排序的数组假设很多很多那是不是计算结果会比上面的方法要慢?
    2020-01-11 20:26:38
提问者 陈立天 2020-01-11 13:46:39

老师补充一下。以下代码为什么和上面那段的代码效果可以一样?

按照正常逻辑应该是把10个1-100的数随机生成了之后 在进行排序才对?如果排序arr.sort(function str(a,b){return b-a;})语句加入for循环当中是不是意思理解为i=0是为1个1-100随机数,这时候排序语句无法对第一个随机数字排序。当i=1的时候第二次循环,这时候有2个随机数 那么排序语句在循环语句当中这时候对这两个1-100的随机数进行排序,这时候才能够排序的意思。那么以此类推 也就是用下面的代码就是:从0-10 每生成一个1-100的随机数都对他生成的所有数进行了排序。也就是说这样的运算是多余的咯?应该是上面的代码才比较符合逻辑 才算最优化的代码?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Math.random()</title>
</head>
<body>
<script>
    var arr=[]
    for(var i=0;i<10;i++){
        arr[i]=Math.floor(Math.random()*10*10+1)
        arr.sort(function str(a,b){return b-a;})
    }
    
    document.write(arr)
    document.write("这组数中最大的值是:"+arr[0]+"这组数中最小的值是:"+arr[9])

    //补充代码
</script>
</body>
</html>


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

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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