LeetCode - 2629.复合函数

学习 · 2023-10-16 · 54 人浏览

这一题要求实现一个Compose函数,属于高阶函数中的一种应用,比它更复杂一些的就是函数柯里化啦~

要求

  1. 第一次调用时接收的是一个函数数组
  2. 返回一个新的函数,并且这个函数就是函数数组的复合函数
/**
 * const fn = compose([x => x + 1, x => 2 * x])
 * fn(4) // 9
 */

题解

这里不使用Reduce方法,采用原始循环来解
var compose = function (functions) {
  return function (x) {
    for (let i = functions.length - 1; i >= 0; i--) {
      x = functions[i](x);
    }
    return x;
  };
};
Leetcode
Theme Jasmine by Kent Liao