思路:使用数组res存储结果,当res的长度小于n时,需要一直创建数组元素,使用Math.random方法创建[start,end]区间的随机整数val,使用includes(val)方法判断数组中是否包含元素val,当res中不包含val时则使用push方法将val加入到结果数组res中。

<script>
   const _getUniqueNums = (start,end,n) => {
       var res=[]
       while(res.length<n)
       {
          //[start,end]
          var val=Math.floor(Math.random()*(end-start+1))+start
          if(!res.includes(val))
            res.push(val)
       }
       return res
   }
</script>

思路:使用set去重,因为set中不允许出现重复元素。创建set使用new Set(),求解set长度使用size,向set中添加元素使用add,向set中删除元素使用delete,将set转换为array使用[...set]。

<script>
  const _getUniqueNums = (start,end,n) => {
    var arr=new Set()
    while(arr.size<n)
    {
       arr.add(Math.floor(Math.random()*(end-start+1))+start)
    }
    return [...arr]
  }
</script>

总结:Math.random()创建[0,1)随机数,Math.random()*(end-start+1)创建[0,end-start+1)随机数,Math.floor(Math.random()*(end-start+1))创建[0,end-start]整数,Math.floor(Math.random()*(end-start+1))+start创建[start,end]整数。array.length求解数组长度;array.includes(val)判断数组中是否存在元素val;array.push(val)表示将元素val加入数组。创建set使用new Set(),求解set长度使用size,向set中添加元素使用add,向set中删除元素使用delete,将set转换为array使用[...set]。