javascript - 用函数反向回调的返回值 - not(callback)

标签 javascript arrays functional-programming

我有一个过滤函数,我将一个测试函数传递给它:

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/

相关文章:

javascript - JavaScript 或 ServiceWorkers 可以检测网络事件/Ajax 事件吗?

javascript - Onselectedindexchanged 有时确实会被解雇

c - char 指针的加法和减法

c++ - 如何从文件中读取 "uneven"矩阵,并存储到二维数组中?

python - Python中的Clojure风格函数 "threading"

functional-programming - 请用最简单、最通俗的英语解释 "universal property of fold"?

javascript - 如何更新这个已弃用的 React.PropTypes 代码

javascript - 自动生成下拉列表

arrays - VBA:从数据表创建包含数组的数组的 .txt 文件

haskell - 使用 if-then-else 的非详尽模式