在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
添加回答
举报
0/150
提交
取消