柯里化函数

阅读 60

2022-04-05

<script>
  //参数的加
  const sumFn = (...args) => {
    return args.reduce((a, b) => {
      return a + b
    })
  }

  //柯里化函数
  const currying = (fnc) => {
    const num = []
    return function result(...rest) {
      if (rest.length != 0) {
        num.push(...rest)
        return result
      } else {
        return fnc(...num)
      }

    }

  }
  let a = currying(sumFn)(1)(2)(3)()
  let b = currying(sumFn)(1, 2)(3, 4)(5)()
  let c = currying(sumFn)(1)(2, 3, 4)(5, 6)()
  console.log(a, b, c)  //6  15  21

</script>

精彩评论(0)

0 0 举报