Javascript For Loop替代将初始变量设置为1?

我已经制作了一个javascript,它将提供输入到数组中的所有数字的阶乘(减去为填充目的必须放置在其中的“ 0”数组中的第一个数字,以使代码正确运行)

fact = [0, 4, 2, 5, 3];
factorial = 1;
for (x = 1; x < fact.length; x++) {
for (i = 1; i <= fact[x]; i++) {
 factorial *= i;
 if (fact[x] === i) {
    console.log(fact[x] + "!" + " " + "=" + " " + factorial);
     factorial = 1;
   }
  }
 }``

一切正常,这是console.log:

4! = 24

2! = 2

5! = 120

3! = 6

我的问题是如何将变量x和i的初始值更改为0,以便可以在不将所有内容输出为0的情况下删除数组中的空格“ 0”,因为当前如果我将变量设置为0,则可以开始并删除空格在我的数组中,“ 0”方程变为:

factorial *= 0;

这将使所有内容都等于零,而我不希望那样!非常抱歉,我很措辞不好,谢谢您的帮助!

解决方法:

jsFiddle Demo

您可以将while循环替换为while循环,如下所示:

var fact = [4, 2, 5, 3];
for (x = 0; x < fact.length; x++) {
 var factorial = fact[x];
 var result = 1;
 while( factorial > 0 ){
  result *= factorial--;        
 }
 console.log(fact[x] + "!" + " " + "=" + " " + result);
}
上一篇:Android之Bundle类


下一篇:python-是否有此代码的替代方法,看起来更整洁并且更易于理解?