var arr = [functionA(), functionB(), functionC()]
var data = { /** some data */ }
如何动态地从arr列表中添加功能并将其添加到ramda管道中。
预期代码:
const newFn = pipe(functionA, functionB, functionC)
newFn(data)
答案 0 :(得分:2)
您可以使用apply
:
const buildPipe = apply(pipe);
const add3 = buildPipe([inc, inc, inc]);
const add4 = buildPipe([inc, inc, inc, inc]);
console.log(add3(1));
console.log(add4(2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.26.1/ramda.min.js"></script>
<script>const {apply, pipe, inc} = R;</script>
答案 1 :(得分:0)
只需使用 es6扩展运算符,它将把数组项扩展为管道函数的参数。
此外,除非函数返回所需的函数,否则不要在数组中调用它们:)
EHLO