题解 | #无重复数组#
无重复数组
https://www.nowcoder.com/practice/d2fa3632268b41df9bc417b74802ad8c
const _getUniqueNums = (start, end, n) => {
//run是一个用于递归的函数,闭包引用_getUniqueNums作用域的数组result,这个数组result是最终需要返回的结果
function run(arr,start,end,n){
for(let i=0;i<n-arr.length;i++){
//确定数组元素范围start<=num<=end
let num=Math.floor(Math.random()*(end-start))+start+1
//数组中存在一样的数字,不操作;不存在一样的数字,存入数字
arr.find(item=>item==num)?arr:arr.push(num)
}
//当数组长度不是n时,进行递归,所有的参数都是闭包引用的,所以n就是最外层作用域的n
if(n>arr.length) run(arr,start,end,n)
return arr
}
let result=new Array()
run(result,start,end,n)
return result
}