多重if else 判断的改进方案
程序员文章站
2022-07-10 22:33:12
...
/**多重if else的改进方案**/ //方法一:用 switch case 代替。如: switch(true) { case (/userTask|multiTask/.test(cell.type)): //userTask的处理办法; break; case(/callActivity/.test(cell.type)): //调用活动的处理办法; break; case default: //do something break; } //方法二:用map结构。 var validateFunc = { "userTask":function(){ //userTask的处理办法; }, "callActivity":function(){ //调用活动的处理办法; } } if(typeof validateFunc(cell.type) == "function") { validateFunc[cell.type](); } else { //do something } /** 条件的分支很多时,使用switch...case的效率将高于多重if_else语句.(在汇编层switch...case是查找表,if语句是跳转:); 同样,{key:value,key2:value2}的map结构也是通过查表来执行 两者相比,switch...case 的优势在于适合于复杂的条件判断; map结构表意更清晰**/