为了账号安全,请及时绑定邮箱和手机立即绑定

javascript随机取数问题

javascript随机取数问题

蝴蝶刀刀 2019-02-25 17:35:58
在js随机中,想要实现每隔5秒取一组5个数的数组,且第二次出现的值不能在第一次出现,第三次出现的值不能在第二次出现,以此类推,求助大家!!!!!累似:第一次出现:[1,3,6,9,11],(每组数据不能有重复的)第二次出现:[2,5,7,8,10],(第二次不能与第一次有相同的)第三次出现:[1,4,9,12,6],(第三次不能与第二次有相同的,与第一次可以有重复的)
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

生成随机数,判断是否在前一次的数组中出现,如果不是就push到新数组里。


const generatorRandomArray = (function() {

  //用于保存前一次计算得到的数组

  let savedArray = []; 

  //生成随机数的函数

  function generatorRandom(n) {

    return Math.ceil(Math.random() * n);

  }

  return function(n) {

    let newArray = [];

    for (let i = 0; i < 5; i++) {

      var num;

      while (true) {

        num = generatorRandom(n);

        //判断随机数是否在前一次数组中出现

        if (!savedArray.includes(num) && !newArray.includes(num)) {

          break;

        }

      }

      newArray.push(num);

    }

    savedArray = [...newArray];

    return newArray;

  };

})();

函数接受一个参数表示随机数的边界,比如generatorRandomArray(300)表示生成的随机数在1~300


查看完整回答
反对 回复 2019-03-09
  • 1 回答
  • 0 关注
  • 345 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信