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

标签 javascript function functional-programming ramda.js

我想获取一个函数数组并对它们应用一个值,将结果收集在一个数组中。我有这个工作,但是 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它接受一个函数列表并返回一个新函数,该函数会将收到的所有值应用于列表中的每个函数,从而生成结果值列表。

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>

关于javascript - 清理函数将值应用于 Ramda 中的函数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48233888/

相关文章:

javascript - 变量作为javascript中的对象键

c++ - 如何在另一个类或结构中使用类函数指针?

c - 函数不显示返回值?

java - 卡在方法/类引用问题上(JAVA Basic)

parsing - 语言设计 : How does evaluation of parsed expressions work in Haskell?

javascript - 如何将坐标字符串转换为 LatLngBound 对象?

javascript - 寻找原始值JS

javascript - JavaScript 中默认日期构造函数的包装器?

Kotlin - Void vs. Unit vs. Nothing

c# - Linq 查询性能,比较编译查询与非编译查询