实现一个函数 pipe(...fns),对函数进行管道操作

推荐答案

本题详细解读

题目要求

实现一个 pipe(...fns) 函数,该函数接受一系列函数作为参数,并返回一个新的函数。这个新函数会将传入的值依次通过每个函数进行处理,最终返回处理后的结果。

代码解析

  1. 函数定义

    • pipe 函数接受任意数量的函数作为参数,使用 ...fns 将这些函数收集到一个数组中。
    • 返回一个新的函数,这个新函数接受一个初始值 value
  2. 函数执行

    • 使用 reduce 方法遍历 fns 数组中的每个函数。
    • reduce 的初始值是传入的 value,每次迭代将当前累积值 acc 传递给下一个函数 fn,并将 fn(acc) 的结果作为下一次迭代的累积值。
    • 最终返回经过所有函数处理后的结果。

示例

解释

  • 初始值 5 传递给 add 函数,结果为 6
  • 6 传递给 multiply 函数,结果为 12
  • 12 传递给 subtract 函数,结果为 9
  • 最终结果为 9
纠错
反馈