对不起,新手问题。我希望下面的两个javascript函数都可以做到这一点:返回等于和低于给定数字的所有数字的总和。Example1:输入-> 3输出-> 6(例如:3 + 2 + 1)Example2输入-> 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
statement移动到return
的前面,因为语句不能成为conditional (ternary) operator ?:
的一部分。
?:
甚至更短的方法使用expression。
function bar(num) {
return num === 0
? 0
: num + bar(num - 1);
}
另一个选择是使用表达式而不是语句-
logical AND &&