清理函数将值应用于 Ramda 中的函数数组

Clean Up Function Applying Value To Array of Functions In Ramda

我想获取一组函数并对它们应用一个值,将结果收集到一个数组中。我有这个工作,但 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"]

Ramda REPL

您正在寻找的函数是 R.juxt,它接受一个函数列表和 returns 一个新函数,该函数将把它接收到的所有值应用到列表中的每个函数,生成一个结果值列表。

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>