之前在工作中遇到的代码,是之前的同事写的,写了差不多一百行if else ,,,,
看的我真是头疼欲裂,今天下决心改一下,
但是感觉这样还是很鸡肋,不知道大家有没有什么更好的方案,烦请留言,switch case除外
//原始代码,这里只是举个例子
const depCode = cookie.load('depCode');
//这里可能有很多判断条件
if (depCode == '0001') {
window.open('http://baidu.com');
} else if (depCode == '0002' || depCode == '0003' || depCode == '9639' || depCode == '8465') {
window.open('http://taobao.com');
} else if (depCode == '0004' || depCode == '0005' || depCode == '00006' || depCode == '7458' || depCode == '1254') {
window.open('http://jingdong.com');
} else if (depCode == '0007') {
window.open('http://youzheng.com');
} else if (depCode == '0008') {
window.open('http://csdn.com');
} else {
setModal(true);//antd Modal的显示
}
//使用new Map去完成条件判断,感觉这样还是很繁琐
const optimization = (code, token, setModal) => {
const depCodeArr1 = ['0001'];
const depCodeArr2 = ['0002', '0003', '9639', '8465'];
const depCodeArr3 = ['0004', '0005', '00006', '7458', '1254'];
const depCodeArr4 = ['0007'];
const depCodeArr5 = ['0008'];
const mjMap = new Map()
.set(deptCodeArr1.includes(code) ? code : '', 'http://baidu.com')
.set(depCodeArr2.includes(code) ? code : '', 'http://taobao.com')
.set(depCodeArr3.includes(code) ? code : '', 'http://jingdong.com')
.set(depCodeArr4.includes(code) ? code : '', 'http://youzheng.com')
.set(depCodeArr5.includes(code) ? code : '', 'http://csdn.com')
const isMjMapCode = mjMap.get(code);
return isMjMapCode && window.open(isMjMapCode) || setModal(true);
}