思路:使用数组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]。



京公网安备 11010502036488号