一道常见的前端面试题

260 阅读1分钟

最近看到一道面试题,觉得有点意思,所以就记下来分享一下。

请写出一个名为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))

以上就是我的解题代码。