题目:
-
用递归算法实现,数组长度为5且元素的随机数在2-32间不重复的值
解题思路:
- 如何创建长度为5的数组new Array(5),Array.of()还是直接 []
- 如何使用Math.random()实现0-10之间的值
- 如何数组的值不重复,indexof或者includes进行判断
- 递归的结束条件
代码演示:
let arr = [];
function getNum(count) {
< !--递归结束条件 -->
if (count >= 5) return;
let randomNum = Math.floor(Math.random() * 31 + 2);
count++;
if (arr.indexOf(randomNum) == -1) {
arr.push(randomNum);
< !--递归 -->
getNum(count);
} else {
< --外面加了1,但是并没有成功加入到数组中-- >
count--;
< !--递归 -->
getNum(count);
}
}
< !--调用函数 -->
getNum(0);
console.log(arr);