如何检查字符串是否与其他任何选项不相同?我知道我可以做一个简单的else
语句,但我不确定它是否可行,因为if
中的代码没有合并,但它们只是{{1} }和if()
为自己的,但后来没有else if()
。如果没有使用else
语句,我怎么能做一个else语句/检查其他什么呢?
这是一个例子。
switch/case
我无法在此处插入代码独立 或 代码段,因为它超出了最大字符数限制。我只能添加一个JSFIDDLE。请原谅这种不便。
答案 0 :(得分:2)
如果没有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的变体,所以如果你不能使用后者我不知道前者如何帮助< / p>
上述情况再次是糟糕的模式,但如果出于某种原因,你需要做什么,那么就有了实施。
答案 1 :(得分:0)
另一个解决方案是在通过其中一个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');
}