const generateRandomBetween = (min,max,exclude) => {
min=Math.ceil(min);
max =Math.floor(max);
const rndnum= Math.floor(Math.random()*(max-min)) + min;
if(rndnum===exclude)
{
generateRandomBetween = (min,max,exclude)
}
else
{
return rndnum;
}
"这里该代码生成1-100之间的随机数,并排除用于计算机在第一次尝试中不猜测该数的"排除";">
generateRandomBetween
在您的案例中是分配给const
变量的函数
与let
或var
不同,定义为const
的变量不能重新分配。
因此,每当rndnum
的值等于exclude
的值时,
您将尝试为generateRandomBetween
分配一个新值。
我假设您的意思是,如果rndnum
等于exclude
,则重新运行该函数
如果是这样的话,您应该删除"等于";
示例:
const generateRandomBetween = (min,max,exclude) => {
min=Math.ceil(min);
max =Math.floor(max);
const rndnum= Math.floor(Math.random()*(max-min)) + min;
if(rndnum===exclude)
{
generateRandomBetween(min,max,exclude)
}
else
{
return rndnum;
}
}
注意:如果我们进行一个小的语法重构,我们也可以让这个代码更干净一些。
const generateRandomBetween = (min,max,exclude) => {
min = Math.ceil(min);
max = Math.floor(max);
const rndnum = Math.floor(Math.random()*(max-min)) + min;
if(rndnum === exclude) {
return generateRandomBetween(min,max,exclude);
}
return rndnum;
}
功能保持不变,可以说,我们只是使else
块隐式。