我将使用MDN Array.prototype.filter()文档中的示例。
我们可以将解耦的函数传递给更高阶的函数,如下所示:
function isBigEnough(value) {
return value >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
使用上面的示例作为参考,是否有可能在没有定义另一个解耦函数
isSmallEnough()
的情况下过滤“不够大”的结果?为了方便起见,我们想返回[5, 8]
。我们可以重用
isBigEnough
来实现吗? 最佳答案
您可以创建一个返回函数倒置形式的函数:
function not(predicate) {
return function() {
return !predicate.apply(this, arguments);
};
}
function isBigEnough(value) {
return value >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(not(isBigEnough));
console.log(filtered);
关于javascript - 使Array.filter()返回false而不是true的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41595354/