抱歉,这是一个基础问题。以下代码中如何简化多个if条件语句:
var x = foo;
if ((x == "val1") || (x == "val2")) {
alert('Hello World');
}
抱歉,这是一个基础问题。以下代码中如何简化多个if条件语句:
var x = foo;
if ((x == "val1") || (x == "val2")) {
alert('Hello World');
}
如果没有一些聪明(或不那么聪明)的编程技巧,你是做不到的,而且你真的不应该这样做。这段代码易读且非常简单。你可以缩短它,但很可能会变得难以阅读。不过你可以格式化它,使其看起来更好:
var x = foo;
if (x == "val1" || x == "val2") {
alert('Hello World');
}
===
而不是 ==
。为什么,请阅读这里:Which equals operator (== vs ===) should be used in JavaScript comparisons?
当然,除非您需要检查20个不同的值。那么制作一个数组并使用indexOf
(如strapro的答案所建议的)可能是一个不错的选择。您可以使用正则表达式。
if (/^val[1-2]$/.test(x))
alert("Hello World");
val1
或 val2
而是 'verylongstring-simplified-toval1' 和 'verylongstring-again-simplified-to-val2' 呢? - Med请问您可以再具体一些吗?简单一点的意思是什么? 让它变得更简单(或者说更易读)的一个方法是:
var acceptedValues = ["val1", "val2"];
var x = "foo"
if(acceptedValues.indexOf(x) >= 0){
alert ('Hello World');
}
if (x == "val1"|| "val2") { alert('Hello World'); }
但它并没有起作用,这让我感到惊讶,所以我认为我可能缺少了一些基本的语法规则。 - DDEX
x
的值是'val1'
或'val2'
中的一个,那么条件成立。在代码中的表现形式为:if (['val1', 'val2'].indexOf(x) >= 0)
。 - fuyushimoyaswitch
代替... - Guruprasad J Raoif (x == "val1"|| "val2") { alert('Hello World'); }
,但它没有起作用,这让我感到惊讶,所以我觉得可能是我忽略了一些允许它的基本语法规则。 - DDEX