javascript - 将数组传递给过滤方法

标签 javascript arrays

如何将数组传递给 JavaScript 中的过滤器方法?

例如,我想用另一个数组过滤一个数组。 现在我的代码可以工作,但我没有传递数组,我的过滤器数组具有全局范围。有没有办法传递数组以获得更清晰的代码?

var array = [1, 2, 3, 4, 5];
var filterNumbers = [1, 4];

var result = array.filter(filterData);

function filterData(value) {
  return filterNumbers.indexOf(value) === -1;
}

最佳答案

您可以通过使用部分应用程序 ( fiddle ) 来做到这一点:

function filterUsing(filterByArray) { // get the array to filter by
    return function(value) { // return a filtering function
        return filterByArray.indexOf(value) === -1;
    };
}

var filterFunc = filterUsing(filterNumbers); // get the function using your filterNumbers array

var result = array.filter(filterFunc);

关于javascript - 将数组传递给过滤方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32317954/

相关文章:

Javascript WebSql 变量范围

javascript - 如何动态更新范围 slider

Javascript代码用于计算对象内两个不同变量的元素组合的出现次数

c - (C) 输入后字符数组大小发生变化?

javascript - 遍历 javascript 对象以获取键值对

javascript - 更改选项,执行事件 javascript

arrays - 如何在 Swift 中更新合并后的数组

ruby - 用两个数组确定一手扑克牌

java - 根据一个数组对相同大小的数组进行排序

php - php中两个数组的合并