【发布时间】:2021-05-21 19:49:42
【问题描述】:
我不确定“变量”是否是在这里使用的正确词,但本质上,我想使用 JavaScript 创建一个变量运算符。
到目前为止,我能想到的最好的事情是创建一个 switch 语句,但这样做似乎非常重复且乏味。有什么办法可以用条件运算符编写一个“If 语句”?
我想到的:
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;
}
}
我想知道在伪代码中是否可能(下面的代码显然不起作用,但在概念上,这是我理想情况下想要使用的)。无论运算符是什么(大于、等于等),这个 if 语句都可以处理:
variableOperator(x, y, operator) {
if (x operator y) {
// logic
}
}
编辑:我应该澄清一下:x 和 y 并不总是必须是数字类型。
主要是,我想知道字符串(a-z,A-Z,0-9)比较(== 或!=)和数字比较(、=)。我正在做的项目不需要担心表情符号或其他复杂字符。
本质上,无论我是在比较字符串还是数字,我都想知道运算符本身是否可以是一个可以轻松操作/更改的变量,这样就不必编写单独的代码每种情况。
【问题讨论】:
-
不,这些是我们无法以这种方式操作的语言级别工具。
-
这些是您唯一关心的运营商吗?
a和b是否只能是 Number 类型? -
您希望
variableOperator("foo", "bar", "????")产生什么? -
@RandyCasburn/VLAZ - 很好的收获。我希望我在上面的帖子中进行了澄清。
-
我原来的评论是成立的。答案是不。但据我所知,你的前提仍然存在缺陷。在您的示例中,您在 4 种情况下有 4 条条件语句,具有基于条件的独立逻辑 - 但是您理想的解决方案是让您以某种方式传递一个运算符并且只使用一点逻辑?您仍然需要 4 个独立的逻辑位,这似乎是合乎逻辑的——它们会去哪里?
标签: javascript syntax conditional-statements comparison operators