检查开关是否有箱子

A.M*_*M.K 3 javascript switch-statement


在我正在研究的项目中已经出现过几次,我如何"测试"一个开关,以确定它是否有一个案例而不实际执行它?

如果必须运行案例,是否有一种有效的检查方法?

先感谢您.

if (runSwitch(switch.hasCase("casename2"))) {
    alert("I've got it!");
}
else {
    alert("nope");
}

function runSwitch(case) {
    switch (case) { // Any way to skip the function?
        case "casename0" : alert("case"); break;
        case "casename1" : alert("case"); break;
        case "casename2" : alert("case"); break;
        case "casename3" : alert("case"); break;
    }
}
Run Code Online (Sandbox Code Playgroud)

Err*_*ald 5

无论你要检查每个案例,无论如何,通过交换机运行它是最佳的.如果您只想在运行之前检查案例是否存在,请将它们添加到数组并检查索引是否存在.

var cases = ['case1', 'case2'];
if (cases.IndexOf('case1') >= 0) {
    // the case is there
}
Run Code Online (Sandbox Code Playgroud)

  • 创建一个可以运行交换机或只检查案例的功能.在每个案例之后,输入类似`if(justChecking)返回true;`并在`default`情况下,将`if(justChecking)返回false;`.然后为该单个函数创建两个包装函数,`runSwitch`和`hasCase`,它使用不同的`justChecking`值调用该单个函数. (2认同)