在代码编写的工程中,难免会遇到多重判断语句。
关于优化的技巧,网上的文章虽然众说纷纭,但归根结底是讨论使用if elseif 的方式更好,还是使用switch case的方法可读性更强。
但是如果涉及到大量的判断,无论是使用if判断还是switch判断的方式,都会产生过多的冗余代码,例如,下面的实例:
//根据类型判断用户的具体角色 6个角色对应6个不同的type
//使用if else 方式
function getUserRole(type) {
var role;
if (type == 0) {
role = '超级管理员';
} else if (type == 1) {
role = '管理员';
}else if(type==2){
role='大区';
}else if(type==3){
role='XXX';
}else if (type==6){
role='ZZZ';
}
return role;
}
//或者是通过switch case 的方式来完成:
function getUserRole(type) {
var role;
switch(type){
case 0:role='超级管理员';break;
case 1:role='管理员';break;
case 2:role='一级代理';break;
case 3:role='二级代理';break;
case 4:role='三级代理';break;
case 5:role='四级代理';break;
case 6:role='五级代理';break;
default: role='未知';break;
}
return role;
}
如果类型再增多的话,使用这两种方式都不是很方便,因此,我们可以先将类型定义成数组,然后直接从数组中取值。
function getUserRole(type) {
var roleArr=[
'超级管理员','管理员','一级代理','二级代理','三级代理','四级代理','五级代理',''
];
return roleArr[type];
}
个人认为通过这种方式可以减少代码量,并且而已将roleArr的内容存储为常量,便于更改。
网友评论