在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ es6中用reduce實(shí)現(xiàn)函數(shù)鏈?zhǔn)秸{(diào)用

es6中用reduce實(shí)現(xiàn)函數(shù)鏈?zhǔn)秸{(diào)用

今天在網(wǎng)上查閱學(xué)習(xí)了reduce這個(gè)api的一些運(yùn)用場(chǎng)景,也跟著在谷歌控制臺(tái)敲了代碼的實(shí)現(xiàn)方式,有看一篇文章
需求:add()(1,2)(3,4)(7,8,9)() 最后輸出 // 34
這個(gè)函數(shù)用reduce實(shí)現(xiàn)!有沒(méi)有人給出優(yōu)雅的代碼呢

回答
編輯回答
不討囍

你沒(méi)有說(shuō)具體規(guī)則 根據(jù)你的例子第一次調(diào)用和最后一次調(diào)用參數(shù)是空 所以:

function add(){
  let arr = [];
  return function fn(){
    if(arguments.length>0){
      arr.push(...arguments)
      return fn;
    }
    return arr.reduce((sum,v)=>sum+v);
  }
}

console.log(add()(1,2)(3,4)(7,8,9)())//34
2017年7月6日 03:20
編輯回答
撥弦

本站有類似回答

2018年6月11日 19:16
編輯回答
朕略傻
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;
    }
}
2017年4月19日 05:07
編輯回答
忠妾
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)())
2018年6月10日 02:14