如何将回调传递给有权访问过滤结果的过滤器

时间:2017-06-18 00:51:48

标签: javascript

我想在过滤器后立即运行另一个函数,如下所示,可以访问过滤器的结果。我传递的匿名函数不会运行。我知道你可以将一个映射链接到一个过滤器,但我不希望在过滤后逐个遍历数组,只需一次访问整个数组。 jsfiddle

var vegetables = ["kale", "brocoli", "kale"];

class Vegies {
  constructor(vegetables) {
    this.vegies = vegetables.filter(function(v){
         return v.length > 3;
    }, function(){
        console.log(this.vegies.length, "doesn't run");
    });
  }

};
var n = new Vegies(["kale", "banana"]);

1 个答案:

答案 0 :(得分:-1)

应该做的工作;)

var vegetables = ["kale", "brocoli", "kale"];

var filteredVegies = vegetables.filter(function myFilter(v){
   return v.length > 3;
});

console.log(filteredVegies) // runs after the filtering..

asyncFilter

然而,也许意图是以异步方式过滤一些更大的集合,所以在这种情况下,这可能很有趣:

https://www.npmjs.com/package/array-async-filter