首页 > 解决方案 > Javascript .reduce()

问题描述

我正在做 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 未定义

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

标签: javascriptarraysfunction

解决方案


  1. 你根本不需要newArr

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

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

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


推荐阅读