compose
创建函数的组合
基本用法
在函数组合中,每个函数都将下一个函数作为参数,并必须调用它才能继续执行。
import { compose } from 'radash'
const useZero = (fn: any) => () => fn(0)
const objectize = (fn: any) => (num: any) => fn({ num })
const increment = (fn: any) => ({ num }: any) => fn({ num: num + 1 })
const returnArg = (arg: any) => (args: any) => args[arg]
const composed = compose(
useZero,
objectize,
increment,
increment,
returnArg('num')
)
composed() // => 2
如果你以前没有见过这种方式,可能会有点不习惯。下面是一个分解的组合形式,它等同于上面的代码。
const decomposed = (
useZero(
objectize(
increment(
increment(
returnArg('num')))))
)
decomposed() // => 2
相关内容
- alphabetical 按属性对对象数组进行字母顺序排序 给定一个对象数组和一个用于确定排序属性的回调函数,返回一个按字母顺序排序的新数组
- boil 将列表项缩减为一个项 给定一个项数组,返回在比较条件中获胜的最终项
- cluster 将列表拆分为指定大小的多个列表 给定一个项数组和所需的集群大小(`n`),返回一个数组的数组
- counting 创建一个包含项目出现次数的对象 给定一个对象数组和一个用于确定每个对象应如何标识的标识回调函数
- diff 创建两个数组之间的差异数组 给定两个数组,返回第一个数组中存在但第二个数组中不存在的所有项的数组
- first 获取列表中的第一个项 给定一个项数组,返回第一个项,如果不存在任何项则返回默认值