不重复的随机数
参考
// [min, max]
let randomMinAndMax = (min, max) => {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
// [min , max)
let randomMinOffMax = (min, max) => {
return Math.floor(Math.random() * (max - min)) + min;
}
// (min, max]
let randomOffMinMax = (min, max) => {
return Math.ceil(Math.random() * (max - min )) + min;
}
let randomIntegerArr = (minNum, maxNum, len) => {
if (maxNum > minNum) {
let [i, setArr, result, diffLen] = [minNum, [], [], maxNum - minNum];
while (i < maxNum) {
setArr.push(i);
i++;
}
// 随机出现一次
setArr.sort(() => {
return 0.5 - Math.random();
});
// 均匀输出
i = 0;
while (i < len) {
result.push(setArr[randomMinOffMax(0, diffLen)]);
i++;
};
return result;
} else {
return;
}
};