如果字符串等于其他任何内容,则使用JavaScript
如何检查字符串是否不等于任何其他选项?我知道我可以只做一个简单的如果字符串等于其他任何内容,则使用JavaScript,javascript,if-statement,Javascript,If Statement,如何检查字符串是否不等于任何其他选项?我知道我可以只做一个简单的else语句,但我不确定它是否能工作,因为我的ifs中的代码没有组合,它们只是if()和else if()本身,但是没有else。如果不使用switch/case语句,我如何执行else语句/检查它是否还有其他内容 这里有一个例子 if(object1 === "string") { function1(); } if(object1 === "string2") { function2(); if(object2 ==
else
语句,但我不确定它是否能工作,因为我的if
s中的代码没有组合,它们只是if()
和else if()
本身,但是没有else
。如果不使用switch/case
语句,我如何执行else语句/检查它是否还有其他内容
这里有一个例子
if(object1 === "string") {
function1();
}
if(object1 === "string2") {
function2();
if(object2 === "string" && variable === 10) {
function1();
}
if(object1 || object2 === "") {
alert("That's not a valid option!");
}
警告
我无法将代码作为独立或片段插入此处,因为它超过了最大字符限制。我只能添加一个JSFIDLE。请原谅我的失礼
如果不将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 */
}
另一种更复杂的方法是使用某种类型的选项,然后检查它们,但这是一个糟糕的模式,你真的应该考虑使用I/OR I/OR作为一个组合树(不确定你真的解释了为什么不能这样做)。
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语句时提高标志,这样在最后,您可以检查这些标志,如果没有一个是真的,那么您可以做任何您想做的事情
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
和else
(或开关
)你是说这些选项不是相互排斥的吗?@Mathletics如果HTML和CSS不存在,那么就没有必要进行故障排除,因为JavaScript会中断。单击链接获取一个链接。你也不需要发布游戏中的所有JS。