javascript - Ramda - 查找类似函数但返回谓词的非虚假结果而不是找到的值

标签 javascript functional-programming ramda.js

ramda 中有没有类似find 的函数,但是不是found element 而是返回predicate 函数的结果?

例如 R.find(x => x === 2 ? 'two' : false, [1, 2, 3]) 会返回 'two' 而不是 2

最佳答案

一般来说,如果您想让一个函数做不止一件事,或者让它在给定不同输入时表现不同,很可能有更好的方法来实现您的目标。

函数组合允许您采用隔离特定行为的函数并将它们组合起来以创建新的有意义的行为

// simple function "foo"
const foo = x => x === 2 ? 'two' : false

// combine foo behaviour with simple function "find"
// creates a new simple function, "bar"
const bar = R.compose(foo, R.find(R.equals(2)))

bar([1,2,3]) // => 'two'
bar([1,3])   // => false

关于javascript - Ramda - 查找类似函数但返回谓词的非虚假结果而不是找到的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40930543/

相关文章:

javascript - 如何检测 iframe 中的 404 错误?

javascript - Controller 之间共享数据未按预期工作

java - Collector 或 ForEach 用于添加多个元素

c# - 使用 Func<T,TResult> 作为参数的方法

python - 将函数的参数(即 lambda)映射到元组?

javascript - 如何将对象列表转换为键控数组/对象?

javascript - 仅在数据表中根据第一列的下拉值过滤表数据

javascript - 在 MixedCollection 中搜索项目

javascript - 努力使用 Ramda.js 重构它,这是我所取得的进展

javascript - 如何正确使用 Ramda/JS 编写函数