我正在做 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
未定义?我确实定义了它!我对编码比较陌生,我真的很想学习。请帮助我。
最佳答案
您根本不需要
newArr
。Array.prototype.push
返回数组的长度。您无法在 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/