- R.juxt 生成基本数据数组
- R.chain 生成函数数组
- R.ap 生成基本数据和函数组合的数组
例子:
let getTypeFn = R.curry((type, value) => Object.prototype.toString.call(value) === `[object ${type}]`)
const ary = ['Object', 'Array', 'Blob', 'FormData']
let setProp = R.curry((pro, v, obj) => obj[pro] = v)
let getTypeFnName = v => 'is' + v
let getPropAndFn = R.ap([getTypeFnName, getTypeFn])
let createTypeFn = (setProp, getPropAndFn, ary) => {
const reduceFn = (obj,v) => {
R.apply(setProp)(R.compose(getPropAndFn, R.of)(v))(obj)
return obj
}
return ary.reduce(reduceFn, {})
}
let fns = createTypeFn(setProp, getPropAndFn, ary)
console.log(fns)