JavaScript .reduce()

标签 javascript arrays function

我正在做 freeCodeCamp JavaScript。我的问题是:基本算法脚本:对 NumberPassed 进行分解

这是我编写的代码:

function factorialize(num) {
  let arr = [];
  let reducer = (accumulator, currentValue) => accumulator * currentValue;
  for (let i = 1; i < num + 1; i++) {
    let newArr = arr.push(i);
  }
  return newArr.reduce(reducer);
}
factorialize(5);

这是我的问题:控制台这样说:

ReferenceError: newArr is not defined

为什么说newArr未定义?我确实定义了它!我对编码比较陌生,我真的很想学习。请帮助我。

最佳答案

  1. 您根本不需要 newArr

  2. Array.prototype.push 返回数组的长度。

  3. 您无法在 for 语句中获取使用 let 声明的变量,这会导致错误。

function factorialize(num) {
  let arr = [];
  let reducer = (accumulator, currentValue) => accumulator * currentValue;
  for (let i = 1; i < num + 1; i++) {
    arr.push(i);
  }

  return arr.reduce(reducer);
}
console.log(factorialize(5));

关于JavaScript .reduce(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60517851/

相关文章:

c - LeetCode : Two Sums (Error: Returning the Array)

php - 在函数中返回 parent::function

javascript - 我的 html 中的符号未正确加载

c# - 如何对字符串版本号列表<string>/array 进行排序?

javascript - 更改页面的背景颜色

php - 从 mysql 获取数组 while

javascript - Reactjs 可以像更改 Prop 一样更改 onclick 函数名称

javascript - 使用addEventListener时事件参数是如何传递的?

javascript - 快速表单处理,无需重定向。有数据但没有preventDefault,但重定向。不使用 PreventDefault 进行重定向,但没有数据

javascript - RabbitMQ。循环发布消息