对函数数组进行 AND 运算

a p*_*son 1 javascript

鉴于:

const a = () => true
const b = () => false

const t = [a, b]
Run Code Online (Sandbox Code Playgroud)

我如何生成一个附加的 AND:

a() && b()

在这种情况下,它将返回false

Nin*_*olz 5

您可以使用trueas startValue来减少数组,并使用函数调用的结果执行逻辑 AND&&

这种方法保留了函数调用的值。

const a = () => true
const b = () => false

const t = [a, b]

console.log(t.reduce((r, f) => r && f(), true));
Run Code Online (Sandbox Code Playgroud)

使用结果的存储值和短路的方法。

const AND = array => {
        var result = true;
        array.every(fn => result = result && fn());
        return result;
    };
Run Code Online (Sandbox Code Playgroud)