今天看到一篇好文,下面是题主一早写的代码,应该还算符合题目的要求,欢迎吐槽
function getRadom(start, end, radomArray) { let getCurrent = function () { return Math.random(0, 1) * (end - start) + start; }; let current = getCurrent(); while (radomArray.includes(current)) { current = getCurrent(); } return current; } function curry(n, start, end) { // n参数健壮校验 //必须要输入n if(!n){return 'need input number'} //n必须是数字,或者字符串数字 if(!(typeof n ==Number || Math.abs(Number(n)))){return 'need input number'} //start 和end之间 if(n<start||n>=end){return 'need input number between start & end'} //必须输入小于这段长度的数字 if(n>(end-start)){return 'need input n.length < end-start'} if(n%1!=0){ n=Math.floor(n)} let radomArray = []; for (let i = 0; i < n; i++) { //给一个值,去取随机数 let radom = getRadom(start, end,radomArray); radomArray.push(radom); //校验随机数, } //返回值校验 return radomArray; } //输入一个数字,返回数组 必须在2,32 之间,并且无重复数字 curry(10, 2, 32);