如何将布尔函数数组组合成单个布尔函数

How to combine array of boolean functions into a single boolean function?

本文关键字:函数 单个布 组合 数组 布尔      更新时间:2023-09-26

我有许多可变长度的函数数组,其中数组中的每个函数都接受相同类型的单个参数并返回 true 或 false。

如何将这些函数"组合"成一个函数,以测试每个组件函数是否返回 true?

var less_than = function(y) {
    function(x) {
    return x < y;
  }
}
var greater_than = function(y) {
    function(x) {
    return x > y;
  }
}
var is_even = function(x) {
    return x % 2 == 0;
}
var fns = [less_than(10), greater_than(1), is_even];
var test_function = combine_tests(fns);
test_function(8) // => true

every() 方法测试数组中的所有元素是否都通过 测试由提供的函数实现。

var functions = [f1, f2, f3];
var arg = "foo";
var result = functions.every(function(func){
    return func(arg);
});