either 方法
功能:检查给定的一组参数是否至少有一个函数返回true。
有点绕,解释一下,假设我们有两个变量 a 和 b,值都为 boolean。
我们想要的结果是a和b只要有一个变量为 true,就返回 true。
我们一般就这么写:
const result = a || b
今天的联系也是类似的,只是我们换成了两个函数的求值结果。如下所示:
const either = (f, g) => (...args) => f(...args) || g(...args);
说明:either方法结果两个参数,这两个参数都是函数,结果是返回一个函数,这个函数接收一个参数,该函数的结果是我们 所传入两个函数的或值。
示例
// 是否是偶数
const isEven = num => num % 2 === 0;
// 是否是正数
const isPositive = nu => num > 0;
// 是否是正数或者偶数
const isPositiveOrEven = either(isPositive, isEven);
isPositiveOrEven(4); // true
isPositiveOrEven(3); // true
isPositiveOrEven(-2); // true
isPositiveOrEven(-1); // false
解释一下:
isPositiveOrEven 的使用是判断所传入的参数,如果是偶数或者正数,则返回true。
因为 4 是正数且是偶数,所以 isPositiveOrEven(4) 的结果为 true。
3 是奇数,但是偶数,所以 isPositiveOrEven(3) 的结果为 true。
-2不是正数,但是偶数,所以 isPositiveOrEven(-2) 的结果为 true。
-1 即不是正数也不是偶数,所以 isPositiveOrEven(-1) 的结果为 false。
