ramda过滤器仅返回第一个结果

时间:2016-03-15 09:25:10

标签: javascript ramda.js

给定元素的一系列属性(来自控制台窗口) enter image description here

我需要 retreive 所有' id'或'名称' 属性

执行此操作时:

R.filter(R.where({name: R.or(R.equals('name'), R.equals('id'))}), attr)

我得到了这个名字'属性。
enter image description here

当倒退'或'这样的论点:

R.filter(R.where({name: R.or(R.equals('id'), R.equals('name'))}), attr)

我得到了' id'属性: enter image description here

过滤器方法应该返回数组中的所有匹配项 - 我缺少什么?**

1 个答案:

答案 0 :(得分:3)

R.or期待两个布尔参数,尽管你传递了两个返回布尔值的函数(R.equals)。您应该可以将R.orR.either交换使用https://jsfiddle.net/euje2kqq/,它会采用您拥有的两个谓词函数,并且您的过滤器应该按预期执行。