有一个多重判断语句逻辑上是判断type=不同的数字执行不同的方法type的取值范围从1~9有部分type值没有对应的处理函数比如:if(type==1){//dosomething}if(type==3){//dosomething}if(type==5){//dosomething}后来觉得很多冗余换了一种方法:vargoto={"1":function(){//dosomething},"3":function(){//dosomething},"5":function(){//dosomething}};goto[type];但是又遇到一个问题,type值遇上没有列出在goto的时候会遇到undefined错误,可是如果这样写:vargoto={"1":function(){//dosomething},"3":function(){//dosomething},"5":function(){//dosomething}“2”:function(){},“4”:function(){},“6”:function(){},“8”:function(){}};goto[type];又觉得这样的代码量分分钟比第一种还要多请问有没有其他思路呢谢谢
2 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
这是javascript?直接用switch?如functionfunc(i){switch(i){case"1":console.log("1...");break;case"2":console.log("2...");break;case2:console.log("2...num");break;default:console.log("...");}}
POPMUISE
TA贡献1765条经验 获得超5个赞
functiongetFunByVal(val){return{"1":doSomething,"1":doSomething,"3":doSomething,"4":doSomething,"5":doSomething,"6":doSomething,"7":doSomething,"8":doSomething,"9":doSomething}[val];}
添加回答
举报
0/150
提交
取消