Javascript 我们可以在条件运算符(?:)中运行循环吗?

Javascript 我们可以在条件运算符(?:)中运行循环吗?,javascript,conditional,ternary,Javascript,Conditional,Ternary,我有以下代码: function f(n){ var p = 0; if(n % 2 === 0 && n > 0) { for(let i = 1; i <= n; i++) { p += i; }; } else { return false; } return p; }; 函数f(n){ var p=0; 如果(n%2==0&&n>0){ for(let i=1;i 0))?for(let i=1;i只能在语句内部使用表达式。

我有以下代码:

function f(n){
var p = 0;
if(n % 2 === 0 && n > 0) {
  for(let i = 1; i <= n; i++) {
    p += i;
  };
} else {
    return false;
    }
 return p;
};
函数f(n){
var p=0;
如果(n%2==0&&n>0){

for(let i=1;i 0))?for(let i=1;i只能在语句内部使用表达式。语句不是表达式

但是您可以使用三元语句,而不使用
for
循环和高斯公式来获得偶数的结果

函数f(n){
返回n%2===0&&n>0?n*(n+1)/2:false;
}
控制台日志(f(4));

console.log(f(5));
您不能在三元函数中使用,除非您可以使用函数为您执行

函数计算(num){
var p=0;
对于(设i=1;i0))?计算(n):
虚假的;
返回p;
}
控制台日志(f(4));

console.log(f(5));
如果我是你,我会使用Gauss并这样写:

函数f(n)
{
返回n>0&&n%2==0?n*(n+1)/2:false;
}
控制台日志(f(4));

控制台日志(f(5))
你试过了吗?发生了什么事?根据,
两边的位必须是:
不能像a那样包含。提供更多的上下文,如果n是数组,我们可以给你更好的答案。你可以在条件中使用each和some来代替for循环。在这种情况下,条件是多余的:
n%2==0&&n>0&&calc(n)
;-)哈哈,这是唯一一种使用内部三元条件的方法
function f(n){
  var p = 0;
  ((n % 2 === 0) && (n > 0)) ? for(let i = 1; i <= n; i++) {p += i;} : 
  false;
  return p;
}