javascript - 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
没有定义?我确实定义了它!我对编码比较陌生,我真的很想学习。请帮我。
解决方案
你根本不需要
newArr
。Array.prototype.push
返回数组的长度。您无法获得使用
let
in 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));
推荐阅读
- javascript - 为什么我不能在 Javascript 中使用 console.log 查看变量的更新计数?
- c - 防止 GCC 合并大括号组中的变量
- r - 如何使用整数列表作为一个整数函数的输入并获得一个列表作为输出?
- c++ - 无法使用 EGL/OpenGLES 上下文创建 OpenCL 上下文共享
- python - 如何增加turtle.tracer() 的延迟?[PYTHON]
- python - Django 我如何编辑评论
- r - 在 r 中编写 for 循环以组合具有匹配名称的列(几乎没有差异)
- python - 基于变量值的着色点
- javascript - 如何使用getOptionLabel设置react select的值
- php - 显示有工作机会的地区和城市