JS中的for循环只返回第一个值?

mer*_*ury 0 javascript loops for-loop

我在 JS 中创建了一个循环来计算阶乘 - 但是,我只是获取 for 循环的第一个值,而不是获取阶乘。在下面的代码中,我只得到 1 FirstFactorial(5);

关于这里出了什么问题有什么想法吗...?

function FirstFactorial(num) {
  var myVar = 1;
  for (var i = 1; i <= num; i++) {
    myVar = myVar * i;
    return myVar;
  }
};

console.log(FirstFactorial(5));
Run Code Online (Sandbox Code Playgroud)

Dea*_*han 5

您的循环实际上在第一次到达时返回return,并且之后不再运行。这就是 return 的工作原理,返回到它被调用的地方。您最好将返回放在循环完成后运行。

function FirstFactorial (num) { 
  var myVar=1;
  for(var i=1; i<=num; i++){
    myVar=myVar*i;
  }
  return myVar;
};

show(FirstFactorial(5));
Run Code Online (Sandbox Code Playgroud)

这是结果的JSFiddle 。