Ema*_*gux 3 javascript recursion
我想编写一个函数,检查随机数是否等于前一个随机数,并返回一个不等于前一个随机数的新随机数.我想使用递归来做这个,但我不确定这是否是正确的语法.
function newNumber(next,previous) {
if (next != previous)
return next;
else {
next = Math.floor(Math.random()*10);
newNumber(next, previous);
}
}
Run Code Online (Sandbox Code Playgroud)
什么是使这个工作的最佳方式?
我会完全放弃这个递归.只需存储最后一个随机数作为函数本身的属性,并在下次用户想要一个随机数时,只返回您计算的第一个与最后一个不同的数.
就像是 -
function newNumber() {
var nextValue;
while ((nextValue = Math.floor(Math.random()*10)) === newNumber.previous) ;
newNumber.previous = nextValue;
return nextValue;
}
Run Code Online (Sandbox Code Playgroud)