gpt4 book ai didi

javascript - 如何创建执行多重组合的函数?

转载 作者:行者123 更新时间:2023-12-03 07:20:53 27 4
gpt4 key购买 nike

我想组合两个或多个函数来产生一个新函数。

如何创建一个函数,通过返回一个接受一个参数的函数来执行从左到右的函数组合?

例如:

const square = v => v * v;
const double = v => v * 2;
const addOne = v => v + 1;

const cal = myFunction(square, double, addOne);
cal(2) // 9; addOne(double(square(2)))

最佳答案

您可以让 myFunction 将传递的函数转换为带有剩余参数的数组,然后返回一个使用 reduce 遍历该数组的函数,传入传递的参数作为初始值:

const myFunction = (...fns) => arg => fns.reduce(
(a, fn) => fn(a),
arg
);

const square = v => v * v;
const double = v => v * 2;
const addOne = v => v + 1;

const cal = myFunction(square, double, addOne);
console.log(cal(2)) // 9; addOne(double(square(2)))

关于javascript - 如何创建执行多重组合的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51509522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com