我很难运行一个在开关情况下检查两个条件的代码,因为这段代码打印“unknown”,因为在javascript中
['police',false]!=['police',false]
var option='police';
var urgent=false;
switch([option,urgent])
{
case ['police',true]:
console.log('police,true');
call_police_urgent();
break;
case ['police',false]:
console.log('police,false');
call_police();
break;
case ['hospital',true]:
console.log('hospital,true');
call_hospital_urgent();
break;
case ['hospital',false]:
console.log('hospital,false');
call_hospital();
break;
case ['firestation',true]:
console.log('firestation,true');
call_firestation_urgent();
break;
case ['firestation',false]:
console.log('firestation,false');
call_firestation();
break;
default:
console.log('unknown');
}
您的代码无法工作,因为一个数组文字永远不等于另一个数组文字,即使它们看起来相同。解决这个问题的方法有很多,但大多数都归结为将数组转换为可以比较的对象,例如字符串:
let str = (...args) => JSON.stringify(args);
switch (str(option, urgent)) {
case str('police', false):
console.log('police,false');
break;
case str('hospital', true):
console.log('hospital,true');
break;
default:
console.log('unknown');
}
这适用于您的简单情况,但不是一般情况,因为不是所有的东西都可以被严格化。
我有一个开关案例,我想用双管引导3个不同的可能案例到一个结果。
我使用开关盒获得较大范围:
这里,当url模式为“/login/new”时,不调用servlet,我通过打印到Console来验证这一点。它只适用于默认情况,即“/login” 期望的输出是应该调用“/new”大小写中的函数。我遗漏了什么?
Ctrl+Space和Ctrl+J不会产生结果。
你好,我有个问题。以下是代码示例: 我有一个多选表格: 这是我的开关盒: 代码的工作原理是,如果用户选择例如GB11,结果将是: 工厂GB11 ZMD_LPLCNMAT_GB11 ZMD_LPQAMAT_GB11 ZMD_LSOCNMAT_GB11 ZMD_PLNTMAT_GB11 ZMD_SLSVMAT_GB11 当我选择GB10和GB20时,我不想选择得到结果,例如“测试”,而不是它们的组合。