gpt4 book ai didi

javascript - 在 javascript 中创建简单过滤器函数的最佳方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 04:18:04 25 4
gpt4 key购买 nike

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

我的代码是这样的:

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,你偶然发现的是 currying 的概念!你会很高兴听到有一个 entire JavaScript community围绕这个想法而建。用Ramda你的代码看起来像:

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

it works .

所有 Ramda 都提供了一个“curried helper functions”的列表,就像你展示的那样。如果您更喜欢 curry 自己的辅助函数,那么您可能需要一个减少样板的 curry 辅助函数:var isGreaterThan = curry(function(a, b){ return a > b })。大多数实用程序库(如 Underscore、Lodash 或 Ramda)都提供了此 curry 函数。

关于javascript - 在 javascript 中创建简单过滤器函数的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34384557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com