使用 .reduce() 对数字进行因式分解

GoM*_*arp 5 javascript arrays mapreduce function factorial

我正在尝试编写一个函数,该函数将生成提供的整数的阶乘,然后减少阶乘数组(通过将每个数组元素相乘)。

例如:

因子(5) >>> [1, 2, 3, 4, 5] >>> 1 * 2 * 3 * 4 * 5 >>> 120

var array = [ ];

function factor(num) {
  for (i = 1; i <= num; i++) {
    array.push(i);
  }  
  array.reduce(function(a, b) {
    return a * b;
  })
};

factor(5);
Run Code Online (Sandbox Code Playgroud)

但是,它一直返回未定义。

我认为这与函数的格式有关,但我不确定。

Raj*_*amy 4

尝试通过initial value减少,

array.reduce(function(a, b) {
    return a * b;
},1);
Run Code Online (Sandbox Code Playgroud)

array还返回的减少值function

function factor(num) {
  for (i = 1; i <= num; i++) {
    array.push(i);
  }  
  return array.reduce(function(a, b) {
    return a * b;
  },1)
};

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