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