JavaScript 如果字符串等于任何其他内容
JavaScript If string is equal to anything else
如何检查字符串是否不等于任何其他选项?我知道我可以做一个简单的 else
语句,但我不确定它是否有效,因为我的 if
中的代码没有组合,但它们只是 if()
和 else if()
用于它自己,但没有 else
。如果不使用 switch/case
语句,我怎么能做 else statement/check 呢?
这是一个例子。
if(object1 === "string") {
function1();
}
if(object1 === "string2") {
function2();
if(object2 === "string" && variable === 10) {
function1();
}
if(object1 || object2 === "") {
alert("That's not a valid option!");
}
警告
我无法在此处插入代码 standalone or snippet,因为它超过了最大字符数限制。我只能添加一个 JSFIDDLE。给您带来的不便请见谅。
在不合并 if/else if/else 的情况下,您可以通过两种主要方式轻松实现
function foo(opt) {
if (opt === 'this') { return true; }
if (opt === 'that') { return 'something else'; }
/* Code here represents the case that opt is not this or that */
}
另一种更复杂的方法是拥有某种选项数组,然后检查所有选项,但这是一个糟糕的模式,你真的应该考虑使用 if/else if/else 作为组合树(不确定你是否真的解释了为什么你不能这样做。
function foo(opt) {
var checked = ['this', 'that'];
if (opt === 'this') { return true; }
if (opt === 'that') { return 'something else'; }
if (checked.indexOf(opt) === -1) { return 'fall through case'; }
}
开关也是可能的,但这只是组合 if/else if/else 的变体,所以如果你不能使用后者,我看不出前者有什么帮助
同样,以上是一个错误的模式,但如果出于某种原因这是你必须要做的,那么就有一个实现。
另一种解决方案是在执行其中一个 if 语句时引发标志,这样在最后,您可以检查这些标志,如果 none 为真,那么您可以做任何您想做的事情。
var flag = false;
if(object1 === "string") {
function1();
flag = true;
}
if(object1 === "string2") {
function2();
flag = true;
if(object2 === "string" && variable === 10) {
function1();
flag = true;
}
if(object1 || object2 === "") {
alert("That's not a valid option!");
flag = true;
}
if(!flag) {
alert('no other options were validated');
}
如何检查字符串是否不等于任何其他选项?我知道我可以做一个简单的 else
语句,但我不确定它是否有效,因为我的 if
中的代码没有组合,但它们只是 if()
和 else if()
用于它自己,但没有 else
。如果不使用 switch/case
语句,我怎么能做 else statement/check 呢?
这是一个例子。
if(object1 === "string") {
function1();
}
if(object1 === "string2") {
function2();
if(object2 === "string" && variable === 10) {
function1();
}
if(object1 || object2 === "") {
alert("That's not a valid option!");
}
警告
我无法在此处插入代码 standalone or snippet,因为它超过了最大字符数限制。我只能添加一个 JSFIDDLE。给您带来的不便请见谅。
在不合并 if/else if/else 的情况下,您可以通过两种主要方式轻松实现
function foo(opt) {
if (opt === 'this') { return true; }
if (opt === 'that') { return 'something else'; }
/* Code here represents the case that opt is not this or that */
}
另一种更复杂的方法是拥有某种选项数组,然后检查所有选项,但这是一个糟糕的模式,你真的应该考虑使用 if/else if/else 作为组合树(不确定你是否真的解释了为什么你不能这样做。
function foo(opt) {
var checked = ['this', 'that'];
if (opt === 'this') { return true; }
if (opt === 'that') { return 'something else'; }
if (checked.indexOf(opt) === -1) { return 'fall through case'; }
}
开关也是可能的,但这只是组合 if/else if/else 的变体,所以如果你不能使用后者,我看不出前者有什么帮助
同样,以上是一个错误的模式,但如果出于某种原因这是你必须要做的,那么就有一个实现。
另一种解决方案是在执行其中一个 if 语句时引发标志,这样在最后,您可以检查这些标志,如果 none 为真,那么您可以做任何您想做的事情。
var flag = false;
if(object1 === "string") {
function1();
flag = true;
}
if(object1 === "string2") {
function2();
flag = true;
if(object2 === "string" && variable === 10) {
function1();
flag = true;
}
if(object1 || object2 === "") {
alert("That's not a valid option!");
flag = true;
}
if(!flag) {
alert('no other options were validated');
}