如何在JavaScript中实现变量运算符?
我不确定这里使用的“variable”是否正确,但本质上,我想使用JavaScript创建一个变量操作符 到目前为止,我能想到的最好的事情是创建一个switch语句,但它似乎非常重复和乏味。有没有办法用条件运算符编写一个“If语句” 我想到的是:如何在JavaScript中实现变量运算符?,javascript,syntax,conditional-statements,comparison,operators,Javascript,Syntax,Conditional Statements,Comparison,Operators,我不确定这里使用的“variable”是否正确,但本质上,我想使用JavaScript创建一个变量操作符 到目前为止,我能想到的最好的事情是创建一个switch语句,但它似乎非常重复和乏味。有没有办法用条件运算符编写一个“If语句” 我想到的是: variableOperator(x, y, operator) { switch(operator) { case '>=': if (x >= y) { /
variableOperator(x, y, operator) {
switch(operator) {
case '>=':
if (x >= y) {
// logic
}
break;
case '<=':
if (x <= y) {
// logic
}
break;
case '<':
if (x < y) {
// logic
}
break;
case '<':
if (x < y) {
// logic
}
break;
}
}
编辑:我应该澄清一下:x和y不一定总是数字类型
主要是,我想知道字符串(a-z,a-z,0-9)比较(=或!=)和数字比较(,=)。我正在进行的项目不需要担心表情符号或其他复杂的字符
本质上,无论我是在比较字符串还是数字,我都想知道运算符本身是否是一个易于操作/更改的变量,这样就不必为每种情况编写单独的代码。在查找表中对运算符进行编码,然后您可以使用它来确定要执行的操作。这将代码简化为一个
if
语句,用于检查值是否通过运算符检查。您还可以包括一个回退—如果找不到运算符,只需假设它失败
const运算符={
“>”:(a,b)=>a>b,
“>=”:(a,b)=>a>=b,
"");
doStuff(2,4,“在查找表中对运算符进行编码,然后您可以使用该编码来确定要执行的操作。这将代码简化为一个if
语句,用于检查值是否通过运算符检查。您还可以包括一个回退-如果找不到运算符,则假定它失败
const运算符={
“>”:(a,b)=>a>b,
“>=”:(a,b)=>a>=b,
"");
doStuff(2,4),“不,这些是我们没有能力以那种方式操作的语言级工具。这些是你唯一关心的操作符吗?而且a
和b
只会是数字类型吗?你期望variableOperator(“foo”,“bar”,"@RandyCasburn/VLAZ-很好的理解。我希望我在帖子上面的编辑中进行了澄清。我最初的评论是正确的。答案是否定的。但据我所知,你的前提仍然有缺陷。在你的例子中,你有4个条件语句,在4种情况下,具有基于条件的独立逻辑,但你的理想解决方案是通过一个运算符r以某种方式并且只使用一个逻辑位?看起来你仍然需要4个独立的逻辑位-这些逻辑位会去哪里?不,这些是我们无法以那种方式操作的语言级工具。这些是你唯一关心的运算符吗?而且a
和b
只会是数字类型?你期望什么可变运算符(“foo”,“bar”,"@RandyCasburn/VLAZ-很好的理解。我希望我在帖子上面的编辑中进行了澄清。我最初的评论是正确的。答案是否定的。但据我所知,你的前提仍然有缺陷。在你的例子中,你有4个条件语句,在4种情况下,具有基于条件的独立逻辑,但你的理想解决方案是通过一个运算符r不知何故,只使用了一点逻辑?看起来很合理,你仍然需要4个独立的逻辑位-这些逻辑位会去哪里?太棒了。我本来打算推荐用类似的方式做咖喱,但这很有效。太棒了。我本来打算推荐用类似的方式做咖喱,但这很有效。
variableOperator(x, y, operator) {
if (x operator y) {
// logic
}
}