javascript条件逻辑运算符

标签 javascript

我有以下内容:

var cond1 = (a>b) ? true: false;
var cond2 = (d<c) ? true: false;
var cond3 = (e==f) ? true: false;

var found = cond1 && cond2 && cond3;

我希望能够以一种优雅的方式将 && 逻辑运算符替换为另一个逻辑运算符,例如 ||并以编程方式执行此操作,就像在一种“变量”运算符中一样。因为我不想做类似的事情:

var found1 = cond1 && cond2 && cond3;
var found2 = cond1 || cond2 || cond3;
var found3 = (cond1 && cond2) || cond3;

然后根据用户从界面中选择的选项来切换/if,这并不优雅。

我该怎么做? (如果可能的话)

提前致谢

最佳答案

我会从一个方法开始,它可以接受一个字符串 (AND/OR) 和一个 bool 委托(delegate)数组并执行行动

function operator(which, ...args)
{
    switch(which.toUpperCase())
    {
        case "AND": return args.every(a => a());
        case "OR": return args.some(a => a());
        default: throw "Invalid operator " + which;
    }
}

var a = 1;
var b = 2;
var c = 3;
var d = 4;
var e = 5;
var f = 5;

var cond1 = () => (a>b) ;
var cond2 = () => (d<c) ;
var cond3 = () => (e==f);

var found1 = operator("and",cond1,cond2,cond3);
var found2 = operator("or",cond1,cond2,cond3);
var found3 = operator("or", () => operator("and",cond1,cond2), cond3);
console.log(found1,found2,found3)

从那里可以很容易地动态构建。

引用资料

关于javascript条件逻辑运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50972591/

相关文章:

javascript - 将标记与 jsx 结合起来

带有对象数组的 JavaScript;对象中的属性有值,返回未定义

循环内的 JavaScript 闭包——简单实用的示例

javascript - 如何计算自定义属性具有特定值的所有元素?

javascript - 如何根据页面宽度条件删除()和撤消删除()?我不需要隐藏或切换

javascript - 在 parse.com 中未找到保存 XMLHttpRequest 的 NodeJS 定义

javascript - 如何使用 grunt 读取外部文件列表

javascript - paper.js 和 javascript 'this' 混淆

javascript - "Dragging"触摸屏设备的效果

javascript - 我有一个带滚动条的 div。我如何检测是否有人在滚动条上按下鼠标?