javascript - 具有多个谓词的过滤器,优雅的函数式方法

标签 javascript functional-programming underscore.js lodash ramda.js

我正在尝试在我的应用中实现过滤逻辑。有一个表格,每个列标题都包含一个输入字段和带有过滤器选项的下拉列表,您可以通过选择一个选项来设置过滤器,例如“等于”、“不等于”、“开始于”、“包含”、“不包含”、“结束于”等(选项会根据不同类型的数据而变化)。类似于 KendoUI grid 的东西

现在我想不通的是如何创建一个函数来使用所选过滤器的谓词来过滤数据数组(可以设置多个过滤器)

我刚开始使用 ramda.js我认为那个项目真的很棒。我想我可以使用那个或 lodash/underscore(不过我更喜欢 ramda)

如果有人能给我看一个片段,作为开始 - 我将非常感激

最佳答案

我认为您正在寻找 R.allPass功能。你只需要做

var selectedPredicates = …;
R.filter(R.allPass(selectedPredicates))(list)

关于javascript - 具有多个谓词的过滤器,优雅的函数式方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26049752/

相关文章:

javascript - Bootstrap-Vue : @click. native 在 <b-form-checkbox> 上表现得很奇怪

javascript - 如何在 Google Maps API 中获取 KML 放置标记值?

scala - 带状态的函数式监听器

functional-programming - 寻找学习练习: implement these monads

jquery - Bootstrap - 未捕获类型错误 : Cannot read property 'fn' of undefined

html - 影响样式的下划线

javascript - 使用 raphael js 和 animate 一起创建一组路径

javascript - 使用索引作为键初始化对象数组

recursion - SML 中的递归匿名函数

javascript - BackboneJS 未捕获引用错误 : variable is not defined