Js公共函数------生成不重复的随机数组且区间和长度自定义

前言: 

需求是做搜索视频推荐音乐,每次只展示出三个,当空搜的时候展示的是前100个的随机的三个。所以我想了半天,最后想到的方法是通过索引,从1-100中随机选出3个数字组成一个数组

 

 

 这样就能拿到想要的三个0-100的随机数组成的数组:

const musicArr = randomUniqueArr(3, 0, 100);

下边是公共函数的实现

/**
 * 生成一个不重复的随机数组
 *
 * @param {number} len 数组长度
 * @param {number} min 最小随机数
 * @param {number} max 最大随机数
 * @return {array} 不重复的随机数组
 */
const randomUniqueArr = (len, min, max) => {
  if (max - min < len) {
    // 可生成数的范围小于数组长度
    return null;
  }
  const hash = [];

  while (hash.length < len) {
    const num = Math.floor(Math.random() * 100);

    if (hash.indexOf(num) === -1) {
      hash.push(num);
    }
  }
  return hash;
};

总结:

我们只要动脑,任何需求能想想到解决它的办法,加油!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值