结合javascript中的简写和回归



对不起,没有任何问题。我希望下面的两个javascript函数都能做同样的事情:返回给定数字以下的所有数字的和。示例1:输入->3输出->6(例如:3+2+1(示例2输入->5输出->15(例如:5+4+3+2+1

foo工作,bar抛出SyntaxError:意外的令牌返回。为什么会这样

function foo(num) { 
if(num===0) {
return 0
} else {
return num + foo(num-1)
}
function bar(num) { 
(num===0)? return 0 : return num + bar(num-1);
}

您需要将return语句移动到条件(三元(运算符?:前面,因为语句不能是表达式的一部分。

function bar(num) { 
return num === 0
? 0
: num + bar(num - 1);
}

一种更短的方法使用逻辑AND&&

function bar(num) { 
return num && num + bar(num - 1);
}
console.log(bar(10));

另一个选项是使用表达式而不是语句-

const bar = num =>
num === 0
? 0
: num + bar(num - 1)

最新更新