日 | 一 | 二 | 三 | 四 | 五 | 六 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
[复位日记]
网站统计
·今日访问 : 628
·页面点击 : 635
·当前在线 : 5
2024年9月4日 星期三[阅读 330]
获取两个数之间不重复的随机数(含头尾数)
getRanAr = (min, max, num) => {
let res = [];
let ar = Array(max - min + 1).fill(min).map((id,key) => id + key);
while(num > 0) {
let idx = Math.floor(Math.random() * ar.length);
res.push(ar[idx]);
ar.splice(idx, 1);
num --;
}
return res
};
参数min为最小数,max为最大数,num为要取出多少个随机数。
函数代码简单解释:声明一个空数组变量res装载待返回结果;生成一个临时数组ar,数组元素为min到max的全部数字;使用while循环语句,当num大于0时,依次给res数组随机添加ar里的一个元素,每次添加都使用splice方法将该元素从ar中删除以避免被重复添加,并令num减去1;最后返回res数组。
函数由于使用while循环,效率非常之高。
发表评论: