首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何创建一个执行多个组合的函数?

如何创建一个执行多个组合的函数?
EN

Stack Overflow用户
提问于 2018-07-25 09:08:49
回答 1查看 45关注 0票数 2

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

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

例如:

代码语言:javascript
复制
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)))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-25 09:11:54

您可以让myFunction将传递的函数转换为带有rest参数的数组,然后返回一个使用reduce迭代数组的函数,并将传递的参数作为初始值传递:

代码语言:javascript
复制
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)))

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51509522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档