javascript - Ramda ifElse 行为异常

标签 javascript ramda.js

为什么当我在这里运行 ifElse 方法时 false 会记录“函数二 (onTruthy)”?

var x = R.ifElse(R.T, function(){
  console.log("function two (onTruthy)")
  // console.log(arguments)
}, function(){
  console.log("function three (onFalsy)")
  // console.log(arguments)
})
x(false)

我认为这是因为 R.T 总是返回 true。也许使用 _.isMatch我配得上吗?

更新:刚试过:

var x = R.pipe(
  R.partialRight(R.match, true),
  R.partialRight(R.ifElse, function(){
    console.log("function two (onTruthy)")
    // console.log(arguments)
  }, function(){
    console.log("function three (onFalsy)")
    // console.log(arguments)
  })
)

最佳答案

R.T对任何输入计算 true。因此R.ifElse(R.T, f, g)可以简化为f

在我看来,您正在寻找 R.ifElse(R.identity, f, g),但这或许可以通过 ... 更好地表达? ... : ...

关于javascript - Ramda ifElse 行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711664/

相关文章:

javascript - 根据另一个 bool 数组过滤数组

javascript - 标签上的文字装饰不起作用

javascript - 在字符串中查找单词并从该单词中拆分字符串

javascript - 如何对具有从ajax动态添加的相同类的元素应用操作?

javascript - 这里有更好的方法来使用 applySpec

javascript - "FATAL ERROR: NewSpace::Rebalance Allocation failed"但已经为垃圾收集器分配了更多空间

javascript - Angular2 RC-4 迁移因反射元数据而失败

javascript - 如何在 Bootstrap 轮播的下一个/上一个点击上加载 JSP 页面

javascript - Ramda,在函数中发送参数

javascript - 在 Javascript 中映射一组任务