今天在网上查阅学习了reduce这个api的一些运用场景,也跟着在谷歌控制台敲了代码的实现方式,有看一篇文章
需求:add()(1,2)(3,4)(7,8,9)() 最后输出 // 34
这个函数用reduce实现!有没有人给出优雅的代码呢
今天在网上查阅学习了reduce这个api的一些运用场景,也跟着在谷歌控制台敲了代码的实现方式,有看一篇文章
需求:add()(1,2)(3,4)(7,8,9)() 最后输出 // 34
这个函数用reduce实现!有没有人给出优雅的代码呢
function add() {
var args = []
return function foo() {
var arg = [].slice.apply(arguments)
if (arg.length == 0) {
return args.reduce(function(x,y){return x+y;}, 0)
}
args = args.concat(arg)
return foo;
}
}
const add = function() {
let v = 0,
f = function(){
v = [].reduce.call(arguments, (a, b) => a + b, v);
return arguments.length ? f : v;
};
return f
};
console.log(add()(1, 2)(3, 4)(7, 8, 9)())
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
你没有说具体规则 根据你的例子第一次调用和最后一次调用参数是空 所以: