js多次调用同一个函数,怎么返回函数的和之积,怎么实现多次调用函数,还能同时使用所有调用的函数

用js实现函数f1,f返回每次调用拿书列表和之积,集中函数f可以不限次数调用,每次调用的参数个数不定。f(1,2)(3)(4,5,6) = (1+2)*3*(4+5+6) 返回和之积

4个回答

javascript


 // 约定不传参数时 获取乘积结果
    const f1 = (...args) => {
        if (args.length === 0) {
          if (!f1.ands) {
            return 0;
          }
          return f1.ands.reduce((p, c) => p * c, 1);
        }

        !f1.ands && (f1.ands = []);

        f1.ands.push(args.reduce((p, c) => p + c, 0));

        return f1;
      }

      console.log(f1(1,2)(2)(3,4)());
hjy170314
hjy170314 我现在的cb为零
大约一年之前 回复
hjy170314
hjy170314 回复Tengmaoqing: 好吧,我们现在只能用jQuery去写,不然超范围了,理解了你的代码,不会改,唉
大约一年之前 回复
Tengmaoqing
Tengmaoqing 回复hjy170314: 大哥,有c b没,我看到一个资源想下载,要10C 币
大约一年之前 回复
Tengmaoqing
Tengmaoqing 回复hjy170314: 不是的,es6的语法,你可以了解一下 箭头函数
大约一年之前 回复
hjy170314
hjy170314 箭头和等于号一样的用法么??我还没写过这个用法
大约一年之前 回复
 <script type="text/javascript">
    function foo(args) {
        if (arguments.length > 0) {
            var sum = 1;
            for (var i = 0; i < arguments.length; i++) {
                var sum1 = 0;
                for (var j = 0; j < arguments[i].length; j++) {
                    sum1 = sum1 + arguments[i][j];
                }
                sum = sum * sum1;
            }
            return sum;
        }
        else {
            return 1;
        }
    }
    var r = foo([1, 2],[3],[4, 5, 6]);
    alert(r);
</script>
function f() {
    var s = 0;
    for (var i = 0; i < arguments.length; i++) {
        s += arguments[i];
    }
    if (this.upData) {
        s *= this.upData;
    }
    var nf = f.bind({upData:s});
    nf.valueOf = nf.toString = function () {
        return s;
    }
    return nf;
}
alert( f(1,2)(3)(4,5,6) );

 function f(...arg0) {
  var result = (...arg1) => f(arg0.reduce((x,s)=>x+s)*arg1.reduce((x,s)=>x+s));
  result.valueOf = () => arg0.reduce((x,s)=>x+s);
  return result
}

console.log(f(1,2)(3)(4,5,6)+0)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!