Recursion FizzBuzz++1.5(codeacademy)中的三元用法

Recursion FizzBuzz++1.5(codeacademy)中的三元用法,recursion,ternary-operator,Recursion,Ternary Operator,我一直在浏览codeacademy的教程和项目。在FizzBuzz++1.5上,他们希望我们使用三元运算符将摆动函数重写为Wob。我不断收到一个错误,用以下代码表示缺少操作数。还有返回末尾的+1,它是如何工作的,javaScript是否将其存储为临时值,因为它没有被分配到任何变量。感谢您的帮助。代码如下 var Wibble = { Wobble: function(a, b) { if(a===b) //if the variables are equal re

我一直在浏览codeacademy的教程和项目。在FizzBuzz++1.5上,他们希望我们使用三元运算符将摆动函数重写为Wob。我不断收到一个错误,用以下代码表示缺少操作数。还有返回末尾的+1,它是如何工作的,javaScript是否将其存储为临时值,因为它没有被分配到任何变量。感谢您的帮助。代码如下

var Wibble = {

  Wobble: function(a, b) {
    if(a===b) 
        //if the variables are equal return 0
        return 0;
    else {
        //decrement the larger of the 2 values
        if (a>b) {
            a--;
        } else {
            b--;
        }
        //call this function again with the decremented values
        //once they are equal the functions will return up the stack
        //adding 1 to the return value for each recursion
        return Wibble.Wobble(a,b)+1;
    }
  },


//This is the line of code that doesn't want to function..
  Wob: function(a, b) {
    (a===b) ? return 0 :(a<b) ? return this.Wob(a--,b)+1 : return this.Wob(a,b--)+1;
    }
 };

使用三元运算符的以下表达式:

result = (a) ? x : y;
相当于以下内容:

if(a)
{
    result = x;
}
else
{
    result = y;
}
注意语法上的差异,在三元运算符中,您在赋值中切换,而在if语句语法中,您在赋值中切换

也就是说:

(a == b) ? return 0 : return 1;
不等同于:

if(a == b)
    return 0;
else
    return 1;
相反,您可能想写:

return (a == b) ? 0 : 1;

使用三元运算符的以下表达式:

result = (a) ? x : y;
相当于以下内容:

if(a)
{
    result = x;
}
else
{
    result = y;
}
注意语法上的差异,在三元运算符中,您在赋值中切换,而在if语句语法中,您在赋值中切换

也就是说:

(a == b) ? return 0 : return 1;
不等同于:

if(a == b)
    return 0;
else
    return 1;
相反,您可能想写:

return (a == b) ? 0 : 1;

我不是javaScript的家伙,但也许把第二个三元运算符放在括号里。还有,你想让第二个三元数是a>b吗?我会更小心你的括号。另外,看看爱德华·汤普森的答案。您应该只使用三元运算符将一个条件转换为一个值我不是javaScript的家伙,但可以将第二个三元运算符放在括号中。还有,你想让第二个三元数是a>b吗?我会更小心你的括号。另外,看看爱德华·汤普森的答案。您应该只使用三元运算符将条件转换为值Wob:function,b{返回a===b?0:a>b?this.Wob-a,b+1:this.Woba,-b+1;}-您的解释很棒!Wob:functiona,b{returna===b?0:a>b?this.Wob-a,b+1:this.Woba,-b+1;}-你的解释太棒了!