我想获取一系列函数并为它们应用一个值,将结果收集到一个数组中。我有这个工作,但flip
使它有点复杂。我该如何简化它?
const f1 = v => v + '1';
const f2 = v => v + '2';
const f3 = v => v + '3';
const result = compose(flip(map)([f1, f2, f3]), applyTo);
result('a') // ["a1", "a2", "a3"]
答案 0 :(得分:3)
您要查找的函数是R.juxt
,它接受一系列函数并返回一个新函数,该函数将它接收的所有值应用于列表中的每个函数,从而生成结果值列表。
const f1 = v => v + '1'
const f2 = v => v + '2'
const f3 = v => v + '3'
const result = R.juxt([f1, f2, f3])
console.log(result('a')) // ["a1", "a2", "a3"]
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>