javascript 内置对象 4-4编程题 为什么 数组取到的值都一样?

javascript 内置对象 4-4编程题 为什么 数组取到的值都一样?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Math.random()</title>
</head>
<body>
<script>
    var arr=new Array();
    function myFunction(a,b){
        var sum=b-a+1,
            random = Math.floor(Math.random()*sum+a);
        for(var i=0;i<10;i++){
            arr[i] = random;
        }
        return arr;
    }
    var x=myFunction(0,100);
    document.write(x);
    
</script>
</body>
</html>

 数组的几个值是 相同的,这是为什么?

正在回答

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

2回答

你写的这个函数一调用,先产生了一个数,存到了变量random里,然后来了个for循环,把数组前10个元素全都用random里的这个数字填充了,当然一样了

  • 建议你这个函数只负责产生一个0-100之间的随机数,然后在外面用for循环给数组中元素依次赋值,这样数组中每个元素应该会很大概率就是不同的值了。
    2017-05-23 18:25:16
  • 还有一种办法, 删掉这一句random = Math.floor(Math.random()*sum+a); 循环体里改成这样 arr[i] = Math.floor(Math.random()*sum+a);;
    2017-05-23 18:27:52
  • 还有一种,要不就直接把random = Math.floor(Math.random()*sum+a);移到for循环里面去
    2017-05-23 18:29:05
怎么都被占用了呢 2017-05-23 19:53:15

你好,将获取随机数移入到for循环中即可http://img1.sycdn.imooc.com/climg//5924229a000137ed08070360.jpg

  • 提问者 铅笔画2016 #1
    问题解决了,谢谢助教,你很棒棒啊~
    2017-05-24 13:14:12
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

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

在线咨询

领取优惠

免费试听

领取大纲

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