我有一个过滤函数,我将一个测试函数传递给它:
var array = [1,3,5,7,9]
function bigger(n){return n > 5}
function filterArray(data,testfn){
return data.filter(e=> testfn(e))}
console.log(filterArray(array,bigger))
>>>[7,9]
现在我喜欢写作
console.log(filterArray(array,not(bigger)))
>>>[1,3,5]
最佳答案
您可以创建一个函数not
,它接受一个函数并返回另一个函数,该函数返回调用原始函数的结果的倒数:
var array = [1, 3, 5, 7, 9];
function bigger(n) {
return n > 5
}
function filterArray(data, testfn) {
return data.filter(e => testfn(e))
}
function not(f) {
return function(n) {
return !f(n);
}
}
console.log(filterArray(array, bigger));
console.log(filterArray(array, not(bigger)));
关于javascript - 用函数反向回调的返回值 - not(callback),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53198403/