马黑PHP整站系统

1234567
891011121314
15161718192021
22232425262728
2930     

[复位日记]

最新评论

悄然
飞飞
小希
小希
飞飞

网站统计

·今日访问 : 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循环,效率非常之高。

2024': 前一则  下一则    

发表评论:

       

Copyright © 2023 All Right Reserved 马黑PHP文章管理整站系统v1.8
联系我们: gxblk@163.com