[Easy] LeetCode JS 30 - 2629. Function Composition (函式组合)
2024年3月3日
💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源
LeetCode 30 Days of JavaScript
本题来自 LeetCode 的 30 天 JacaScript 挑战
2629. Function Composition (函式组合)题目描述
给定一个函式阵列 [f1, f2, f3, ... fn]
,回传一个新的函式 fn
,它是该阵列中函式的组合。
函式组合的定义是,如果函式阵列为 [f(x), g(x), h(x)]
,则 fn(x) = f(g(h(x)))
。空函式阵列的函式组合则为恒等函式 f(x) = x
。
你可以假设阵列中的每个函式都接受一个整数作为输入,并回传一个整数作为输出。
// 范例一
输入: functions = [x => x + 1, x => x * x, x => 2 * x], x = 4
输出: 65
解说:
从右到左
初始的 x = 4.
2 * (4) = 8
(8) * (8) = 64
(64) + 1 = 65
// 范例二
输入: functions = [x => 10 * x, x => 10 * x, x => 10 * x], x = 1
输出: 1000
解说:
从右到左
10 * (1) = 10
10 * (10) = 100
10 * (100) = 1000
本题解答
以下是本题的解答,详细解题思路可以在 E+ 成长计划看到。如果想练习更多题目,推荐可以到 GreatFrontEnd 上练习
解法
var compose = function (functions) {
return function (x) {
let result = x;
for (let i = functions.length - 1; i >= 0; i--) {
result = functions[i](result);
}
return result;
};
};