Javascript中的简单递归

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)

什么是使这个工作的最佳方式?

Ada*_*kis 7

我会完全放弃这个递归.只需存储最后一个随机数作为函数本身的属性,并在下次用户想要一个随机数时,只返回您计算的第一个与最后一个不同的数.

就像是 -

function newNumber() {
    var nextValue;
    while ((nextValue = Math.floor(Math.random()*10)) === newNumber.previous) ;

    newNumber.previous = nextValue;
    return nextValue;
}
Run Code Online (Sandbox Code Playgroud)