我在编写将因数分解的函数时遇到了一个小问题。困难的部分已经完成。但是我似乎无法告诉该函数在num为0时返回1。

PS:您还可以通过其他哪些方式使用JavaScript编写相同的函数?

var arrOfNum = [];

function factorialize(num) {

  for(i = 1; i <= num; i++){
    // push all numbers to array
    arrOfNum.push(i);
  }

  // multiply each element of array
  var result = arrOfNum.reduce(function(a,b){
    return a * b;
  });

  console.log(result);
}

最佳答案

您已经有一个for循环,您可以在其中立即计算阶乘,而无需数组和归约。

function factorial(num) {
  var result = 1;
  for(i = 2; i <= num; i++) {
      result *= i;
  }
  return result;
}

关于javascript - 分解函数javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36219647/

10-10 18:27
查看更多