在 JavaScript 中需要帮助编写自定义过滤器函数

Need help writing custom filter function in JavaScript

我写了一个 each() 函数,它可以正常工作,其行为与下划线的 _.each() 完全相同。我想编写一个类似于 filter() 的函数,但是对于 运行 通过 callback/predicate函数。

var filter = function(collection, callback){
    each(collection, function(item){
            if (callback(item)) {return true;}
            else {return false}
        });
};

console.log(filter([1,2,3,4,5], function(x) {return x % 2 == 0;}));

这是我拥有的,但它正在返回 undefined。我做错了什么?

你的过滤功能没有return任何东西。尝试 return 调用 each() 的结果。

很明显;你在每个方法中 return 真假。

从过滤功能来看你return没什么。

如果你想写一个过滤器函数,你应该这样做:

var filter = function(collection, callback){
    var result = [];
    each(collection, function(item){
            result.push((callback(item))?true:false);
        } 
    );
    return result;  
};

另一种可能性是修改您的 each,使其 return 成为一个数组,其中包含 return 内的每个值。