题注参与过多次活动,每次主题都会有设计模式,其实说来说去都是那几个常用的。
然而,实际上这些设计模式已经内嵌在框架里面,用好框架的服务足够了。往往,最基础的设计模式容易被忽略。
今天看到一篇好文,下面是题主一早写的代码,应该还算符合题目的要求,欢迎吐槽
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);