javascript - 多重选择语句的思路
PHP中文网
PHP中文网 2017-04-10 14:22:56
0
3
566

有一个多重判断语句 逻辑上是判断type=不同的数字 执行不同的方法 type的取值范围从1~9 有部分type值没有对应的处理函数
比如:

if(type==1){
//do something
}
if(type==3){
//do something
}
if(type==5){
//do something
}

后来觉得很多冗余 换了一种方法:

var goto={
"1":function(){
//do something
},
"3":function(){
//do something
},
"5":function(){
//do something
}
};
goto[type];

但是又遇到一个问题,type值遇上没有列出在goto的时候会遇到undefined错误,可是如果这样写:

var goto={
"1":function(){
//do something
},
"3":function(){
//do something
},
"5":function(){
//do something
}
“2”:function(){},
“4”:function(){},
“6”:function(){},
“8”:function(){}
};
goto[type];

又觉得这样的代码量分分钟比第一种还要多 请问有没有其他思路呢 谢谢

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(3)
小葫芦

这是javascript?直接用switch?如

function func(i){
  switch(i){
    case "1":
      console.log("1...");
      break;
    case "2":
      console.log("2...");
      break;
    case 2:
      console.log("2...num");
      break;
    default:
      console.log("...");
  }
}
Ty80
    function getFunByVal(val){  
        return {"1":doSomething,"1":doSomething,"3":doSomething,"4":doSomething,"5":doSomething,"6":doSomething,"7":doSomething,"8":doSomething,"9":doSomething}[val];   
    }  
黄舟

你的第2种和第3种是一样的形式了...

var gofunc = function(type) {
  var maps = {
    1: function() {
      console.log('1');
    },
    2: function() {
      console.log('2');
    },
  };
  return (maps.hasOwnProperty(type) ? maps[type]() : null);
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板