【发布时间】:2018-01-16 08:13:56
【问题描述】:
有人可以向我解释一下这段代码是如何工作的,或者有一个链接可以解释这个吗? (具体部分:+acc + +curr;)
有问题的代码:
let args = process.argv;
let sum = args.reduce(function(acc, curr) {
return +acc + +curr;
});
console.log(sum);
具有相同功能的 for 循环的原始解决方案:
let result = 0;
for (i = 0; i < process.argv.length; i++) {
result += Number(process.argv[i])
}
console.log(result);
上面的花哨代码是了解/推荐做法的好方法吗? 谢谢。
【问题讨论】:
-
reduce、map 和 filter 都是不做 for 循环的迭代方式,它们非常强大但很难理解。你试过谷歌搜索吗?这不是格式最好的问题,你不是在问什么让你感到困惑,只是问什么是减少。可以用谷歌搜索。
-
不,省略起始值不是一个好习惯。更好:
const sum = process.argv.reduce((acc, arg) => acc + Number(arg), 0);
标签: javascript iteration