请补全JavaScript代码,实现一个函数,要求如下:
1. 根据输入的数字范围[start,end]和随机数个数"n"生成随机数
2. 生成的随机数存储到数组中,返回该数组
3. 返回的数组不能有相同元素
注意:
1. 不需要考虑"n"大于数字范围的情况
首先讨论一下获取随机数这个问题,采用random函数
var a = Math.random();包含0但是不包含1
var b = Math.random()*4; 获取(0,4]
var c = Math.random()*4 - 2; 获取(2,4]
那需要获取闭区间[2,4],就采用floor函数向下取整
var d = Math.floor(Math.random()*4 - 2)
再考虑去重问题,可以一下方法
a.includes()
includes()
方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true
,否则返回 false
。
b.indexOf()
indexOf()
方法返回在数组中可以找到给定元素的第一个索引,如果不存在,则返回 -1。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<script>
const _getUniqueNums = (start,end,n) => {
// 补全代码
let array = [];
while(array.length<n){
let temp = Math.floor(Math.random()*end - start)
if(array.indexOf(temp)==-1){
array.push(temp)
}
}
return array;
}
</script>
</body>
</html>