gpt4 book ai didi

Javascript 在 switch case 中进行多重决策

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:19 24 4
gpt4 key购买 nike

我很难运行检查 switch case 中两个条件的代码,因为此代码在 javascript 中打印“未知”

['police',false]!=['police',false]

有没有办法使用 switch-case 而不是嵌套 if 来实现此代码?

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

这适用于您的简单情况,但不适用于一般情况,因为并非所有内容都可以字符串化。

关于Javascript 在 switch case 中进行多重决策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49083242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com