在代碼編寫(xiě)的工程中些举,難免會(huì)遇到多重判斷語(yǔ)句馒吴。
關(guān)于優(yōu)化的技巧勇垛,網(wǎng)上的文章雖然眾說(shuō)紛紜脖母,但歸根結(jié)底是討論使用if elseif 的方式更好,還是使用switch case的方法可讀性更強(qiáng)闲孤。
但是如果涉及到大量的判斷谆级,無(wú)論是使用if判斷還是switch判斷的方式,都會(huì)產(chǎn)生過(guò)多的冗余代碼讼积,例如肥照,下面的實(shí)例:
//根據(jù)類(lèi)型判斷用戶(hù)的具體角色 6個(gè)角色對(duì)應(yīng)6個(gè)不同的type
//使用if else 方式
function getUserRole(type) {
var role;
if (type == 0) {
role = '超級(jí)管理員';
} else if (type == 1) {
role = '管理員';
}else if(type==2){
role='大區(qū)';
}else if(type==3){
role='XXX';
}else if (type==6){
role='ZZZ';
}
return role;
}
//或者是通過(guò)switch case 的方式來(lái)完成:
function getUserRole(type) {
var role;
switch(type){
case 0:role='超級(jí)管理員';break;
case 1:role='管理員';break;
case 2:role='一級(jí)代理';break;
case 3:role='二級(jí)代理';break;
case 4:role='三級(jí)代理';break;
case 5:role='四級(jí)代理';break;
case 6:role='五級(jí)代理';break;
default: role='未知';break;
}
return role;
}
如果類(lèi)型再增多的話,使用這兩種方式都不是很方便勤众,因此舆绎,我們可以先將類(lèi)型定義成數(shù)組,然后直接從數(shù)組中取值们颜。
const roleArr=[
'超級(jí)管理員','管理員','一級(jí)代理','二級(jí)代理','三級(jí)代理','四級(jí)代理','五級(jí)代理',''
];
function getUserRole(type) {
return roleArr[type];
}
個(gè)人認(rèn)為通過(guò)這種方式可以減少代碼量亿蒸,并且而已將roleArr的內(nèi)容存儲(chǔ)為常量,便于更改掌桩。