在javascript中创建简单过滤器功能的最佳方法是什么?

madox2

很多时候,我遇到相同的问题:我想用一个简单的条件过滤一个数组,例如检查非/相等,大于,小于,包含...

我的代码如下所示:

var result = [1, 2, 3, 4].filter(function(i) {
   return i > 2; 
});
console.log(result); // [3, 4]

拥有此类简单操作的快捷方式将非常不错,因此我创建了一些辅助函数:

function isGreaterThan(value) {
    return function(original) {
        return value < original;
    }
}
[1, 2, 3, 4].filter(isGreaterThan(2)); // [3, 4]

要么:

function isGreaterThan(value, original) {
    return value < original;
}
[1, 2, 3, 4].filter(isGreaterThan.bind(null, 2)); // [3, 4]

有没有更好的方法如何在javascript中做到这一点?javascript是否有任何内置函数来支持这些简单的比较?

阿瓦克

Madox,您偶然发现的是curring概念您会很高兴听到围绕这个想法建立了一个完整的JavaScript社区使用Ramda,您的代码将如下所示:

var filterSmallNumbers = filter(gte(3));
var smallNumbers = filterSmallNumbers([1,2,3,4,5,6]);

而且有效

Ramda提供的所有内容都是“咖喱助手功能”的清单,如您所显示的那样。如果您想使用自己的辅助函数,那么您可能需要一个curry辅助函数来减少样板:var isGreaterThan = curry(function(a, b){ return a > b })大多数实用程序库(如Underscore,Lodash或Ramda)都提供此curry函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 Laravel 或原始 SQL 中创建基于过滤器的搜索的最佳方法是什么?

为什么dplyr的过滤器不能与简单过滤器中的空格一起使用?

为存储库创建自定义过滤器的最佳方法是什么?

使用Java Fx,创建搜索过滤器时搜索整数值的最佳方法是什么?

反应,过滤器功能中的c是什么

为什么我在泽西岛的简单过滤器不起作用?

服务总线规则中的简单过滤器不起作用

图例Google Maps API v3中的简单过滤器

使用 mplfinance / matplotlib 创建简单的过滤器功能区

Elasticsearch-使用提示和其他过滤器搜索条件的最佳方法是什么?

返回计划查询以在之后添加过滤器的最佳方法是什么

在 CRUD 系统中使用过滤器并导出 excel 的最佳方法是什么

在 vaadin 的每个页面之前制作过滤器的最佳方法是什么

android 中搜索过滤器屏幕的最佳 UX 模式是什么?

创建过滤器功能

创建Gmail功能的最佳方法是什么?

使用JavaScript中的过滤器转换简单逻辑

Django动态表单过滤器

ffmpeg中的比特流过滤器是什么?

TensorFlow中设备过滤器的格式是什么?

Angular过滤器定义中的“ anyPropertyKey”是什么?

在 BeautifulSoup 中,使用带有 lxml 解析的过滤器的正确方法是什么?

在JavaScript中向过滤器功能添加条件

Shiny R中的Tableau JavaScript API过滤器功能

什么是创建单一和复合词的搜索过滤器的最有效方法是什么?

JavaScript简单亵渎过滤器

过滤器的调用顺序是什么?

在 hbase 中使用过滤器进行行计数的最佳实践是什么?

如何在javascript中创建日期过滤器?