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

标签 javascript arrays function mapreduce 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);

但是,它总是返回 undefined。

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

最佳答案

尝试为reduce传递初始值

array.reduce(function(a, b) {
    return a * b;
},1);

同时从函数返回数组的缩减值,

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));

关于javascript - 使用 .reduce() 对数字进行因式分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35780803/

相关文章:

python - 如何创建一个包含多变量函数值的 numpy 数组?

java - 函数式编程练习(Lambda 函数)

javascript - Vue/Nuxt.js - 计算嵌套 JSON 值的总值

javascript - HTML - 通过单击图像调用 javascript

java - 如何在 Java 中将任何数组作为参数传递?

ios - 如何将结构追加到数组中? swift 4

C++ 友元函数不起作用,在此上下文错误中私有(private)

javascript - 将选择选项值传递到操作属性中,以便它可以作为 url 传递并打开网站

javascript - 在网站上播放实时视频流

arrays - F# 中两个数组的匹配元素