本文主要是介绍力扣之2629.复合函数(reduceRight ),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*** @param {Function[]} functions* @return {Function}*/
var compose = function(functions) {return function(x) {return functions.reduceRight((result, func) => func(result), x);}
};/*** const fn = compose([x => x + 1, x => 2 * x])* fn(4) // 9*/
说明:
-
reduceRight
的第一次迭代:func
是数组中的最后一个函数x => 2 * x
。result
初始值是4
(传入fn
的参数)。func(result)
即执行x => 2 * x
函数,得到2 * 4 = 8
,这个值成为下一次迭代的result
。
-
reduceRight
的第二次迭代:func
是数组中的第一个函数x => x + 1
。result
是上一次迭代的结果8
。func(result)
即执行x => x + 1
函数,得到8 + 1 = 9
。
最终,fn(4)
的调用输出 9
,这是因为整个 compose
函数依次执行了数组中的函数,并将结果传递给下一个函数。
这篇关于力扣之2629.复合函数(reduceRight )的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!