鍍金池/ 問答/HTML5  PHP  HTML/ javascript隨機(jī)取數(shù)問題

javascript隨機(jī)取數(shù)問題

在js隨機(jī)中,想要實(shí)現(xiàn)每隔5秒取一組5個(gè)數(shù)的數(shù)組,且第二次出現(xiàn)的值不能在第一次出現(xiàn),第三次出現(xiàn)的值不能在第二次出現(xiàn),以此類推,求助大家?。。。。?br>累似:
第一次出現(xiàn):[1,3,6,9,11],(每組數(shù)據(jù)不能有重復(fù)的)
第二次出現(xiàn):[2,5,7,8,10],(第二次不能與第一次有相同的)
第三次出現(xiàn):[1,4,9,12,6],(第三次不能與第二次有相同的,與第一次可以有重復(fù)的)
...

回答
編輯回答
巷尾

生成隨機(jī)數(shù),判斷是否在前一次的數(shù)組中出現(xiàn),如果不是就push到新數(shù)組里。

const generatorRandomArray = (function() {
  //用于保存前一次計(jì)算得到的數(shù)組
  let savedArray = []; 
  //生成隨機(jī)數(shù)的函數(shù)
  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);
        //判斷隨機(jī)數(shù)是否在前一次數(shù)組中出現(xiàn)
        if (!savedArray.includes(num) && !newArray.includes(num)) {
          break;
        }
      }
      newArray.push(num);
    }
    savedArray = [...newArray];
    return newArray;
  };
})();

函數(shù)接受一個(gè)參數(shù)表示隨機(jī)數(shù)的邊界,比如generatorRandomArray(300)表示生成的隨機(jī)數(shù)在1~300

2018年4月18日 15:55