我想要实现这个随机这个数组,里面的值每次刷新都不重复,请问这个代码怎么修改

我想要实现这个随机这个数组,里面的值每次刷新都不重复,请问这个代码怎么修改

<scrpit>

var a=["a","b","c","d"];
function randomSort(arr) {
   var random=[];
   for (var i=0;i<4;i++) {
       var index=Math.floor(Math.random()*(4-i));
       random.push(arr[index]);
       arr.splice(index,1);//index 下标
   }
   return random;

}

</script>

正在回答 回答被采纳积分+1

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

2回答
好帮手慕慕子 2019-05-07 13:04:24

同学你好,抱歉老师一开始没有理解同学的意思, 如果同学想要实现随机数组不重复。 你贴的代码整体实现思路是对的, 但是代码中书写有错误, script标签单词写错了,而且最后也没有调用函数

另, 可以使用数组的长度最为循环和获取随机数组的条件, 让代码更灵活哦~ 建议参考下图修改:

http://img1.sycdn.imooc.com//climg/5cd111c800015ca511140957.jpg

老师上次回答的代码是实现求任一组数的平均值的, 同学也可以参考下哦~

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~

好帮手慕慕子 2019-05-06 19:24:38

同学你好, 请问你这里是想问如何实现一个随机数组吗?如果是指这里的话, 可以参考下面的代码,结合结合注释理解:

function randomSort() {
        var arr = [];
        for (var i = 0; i < 4; i++) {
            // 随机0 1 2 3 4 5 6 7 8 9之间的数字
            var item = Math.floor(Math.random() * 10);
            // 将随机数字存入数组
            arr.push(item);
        }
        return arr;
    }
    function getResult(arr) {
        var sum = 0
        // 循环累加随机数组的值
        for (var i = 0; i < arr.length; i++) {
            sum += arr[i]
        }
        // 获取随机数据的平均值
        sum = parseInt(sum / arr.length)
        // 弹出平均值
        alert(sum)
    }
    // 获取到随机数组
    var randomArr = randomSort()
    // 调用函数,传入随机数组
    getResult(randomArr)

若同学不是指的这里的话,可以详细的描述下,指的是哪里,再次提问,老师会继续为你解答哦

如果帮助到了你,欢迎采纳!

祝学习愉快~~~

  • 提问者 慕移动6504151 #1
    我是想随机[“a”,“b”,“c”,“d”],每次打印都随机排列且不重复
    2019-05-06 19:35:00
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

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

在线咨询

领取优惠

免费试听

领取大纲

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