最近看到一道面试题,觉得有点意思,所以就记下来分享一下。
请写出一个名为fn的函数,参数是为n的整数,返回值是一个长度为n的数组,数组由[2,100]中的随机不重复整数组成。
题目大概就是这样的。
function getRandomNum () {//获取2-100的随机整数
return Math.floor(Math.random()*99+2)
};
function getRandomArr (arr,n) {//利用2-100的随机整数,组成长度为n的数组
let randomNum = getRandomNum();
if(!arr.includes(randomNum)){
arr.push(randomNum);
};
if (arr.length<n) {
getRandomArr (arr,n)
};
return arr
};
function fn(n) {
if(!(typeof n ==='number'&&!isNaN(n))){
console.log('n不是数字')
return
}
if (n%1!==0) {
console.log('n不是整数')
return
}
if (n>100||n<1) {
console.log('n请取1-99之间的整数')
return
}
let arr = [];
getRandomArr(arr,n);
return arr
}
console.log(fn(99))以上就是我的解题代码。