如何将数组传递给 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/