JavaScript如果string等于其他任何东西

时间:2015-02-12 17:10:11

标签: javascript if-statement

如何检查字符串是否与其他任何选项不相同?我知道我可以做一个简单的else语句,但我不确定它是否可行,因为if中的代码没有合并,但它们只是{{1} }和if()为自己的,但后来没有else if()。如果没有使用else语句,我怎么能做一个else语句/检查其他什么呢?

这是一个例子。

switch/case

警告

我无法在此处插入代码独立 代码段,因为它超出了最大字符数限制。我只能添加一个JSFIDDLE。请原谅这种不便。

JSFIDDLE

2 个答案:

答案 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');
}