Jquery 切换情况与条件?

Jquery 切换情况与条件?,jquery,conditional,switch-statement,Jquery,Conditional,Switch Statement,我发现了这篇帖子:我正在考虑使用switch case传递多个参数,如下所示: switch (array($var1, $var2, $var3)) { case array(true, false, false): echo "hello"; break; } 对于这是否是最有效的方法,似乎存在一些疑问。人们的情绪似乎是如果有条件的话更合适。但是,当我看到我正在写的条件时,我不确定?例如,这感觉很混乱(请注意,我删除了大约6个其他条件以避免让您感到厌烦): if( csz=

我发现了这篇帖子:我正在考虑使用switch case传递多个参数,如下所示:

switch (array($var1, $var2, $var3)) {
case array(true, false, false):
    echo "hello";
    break;
}
对于这是否是最有效的方法,似乎存在一些疑问。人们的情绪似乎是如果有条件的话更合适。但是,当我看到我正在写的条件时,我不确定?例如,这感觉很混乱(请注意,我删除了大约6个其他条件以避免让您感到厌烦):

if(
csz==“谷歌”|
csz==“bing”|
csz==“雅虎”|
csz==“狗堆”|
csz==“百万短”和
cs=''{
$(“li.phone”).replace为(“
  • ”+phoneNaturalSearch+”
  • ); } 若否( csz==“脸谱”和 cs=''{ $(“li.phone”).replace为(“
  • ”+phoneFacebook+”
  • ”); } 若否( csz==“谷歌+”|| csz==“正”){ $(“li.phone”).replace为(“
  • ”+phoneGooglePlus+”
  • ); } //删去了其他条件句 否则{ $(“li.phone”).replace为(“
  • ”+phoneDefault+”
  • ); }

    在这里,使用多个参数进行切换会更有效,还是会对性能造成影响?我想我应该写代码,看看它是否真的不那么凌乱,但我想我应该先从大师那里把它弹出来。

    我觉得如果你有这么多条件,我更喜欢使用switch语句,使你的代码更干净、更容易理解。。 您可以忽略属于此特定类别的条件的中断

    var phoneType= '';
    
    switch(csz){ 
      case "google" : 
      case  "bing" : 
      case "yahoo" :
      case "dogpile"  : 
      case "millionshort" : 
        if (cs==''){ 
            phoneType = phoneNaturalSearch ;
            break;
        }
        else {
            goto case "facebook";
        }
      case "facebook" :
        if (cs==''){ 
            phoneType = phoneFacebook  ;
            break;
        }
        else {
            goto case "google-plus";
        }
      case "google-plus" :
      case "plus"  : 
        phoneType = phoneGooglePlus ;
        break;
      default : 
        phoneType = phoneDefault  ;
        break;
    }
    
    $("li.phone").replaceWith('<li class="phone">' + phoneType + '</li>');
    
    var phoneType='';
    开关(csz){
    案例“谷歌”:
    案例“bing”:
    案例“雅虎”:
    案例“狗堆”:
    案例“百万短”:
    如果(cs=''){
    phoneType=phoneNaturalSearch;
    打破
    }
    否则{
    后藤案“脸谱”;
    }
    案例“facebook”:
    如果(cs=''){
    phoneType=phoneFacebook;
    打破
    }
    否则{
    后藤案“谷歌+”;
    }
    案例“谷歌+”:
    案例“附加”:
    phoneType=phoneGooglePlus;
    打破
    违约:
    phoneType=phoneDefault;
    打破
    }
    $(“li.phone”).replace为(“
  • ”+phoneType+”
  • ”);
    我觉得如果你有这么多条件,我更喜欢使用switch语句,这会使你的代码更清晰、更容易理解。。 您可以忽略属于此特定类别的条件的中断

    var phoneType= '';
    
    switch(csz){ 
      case "google" : 
      case  "bing" : 
      case "yahoo" :
      case "dogpile"  : 
      case "millionshort" : 
        if (cs==''){ 
            phoneType = phoneNaturalSearch ;
            break;
        }
        else {
            goto case "facebook";
        }
      case "facebook" :
        if (cs==''){ 
            phoneType = phoneFacebook  ;
            break;
        }
        else {
            goto case "google-plus";
        }
      case "google-plus" :
      case "plus"  : 
        phoneType = phoneGooglePlus ;
        break;
      default : 
        phoneType = phoneDefault  ;
        break;
    }
    
    $("li.phone").replaceWith('<li class="phone">' + phoneType + '</li>');
    
    var phoneType='';
    开关(csz){
    案例“谷歌”:
    案例“bing”:
    案例“雅虎”:
    案例“狗堆”:
    案例“百万短”:
    如果(cs=''){
    phoneType=phoneNaturalSearch;
    打破
    }
    否则{
    后藤案“脸谱”;
    }
    案例“facebook”:
    如果(cs=''){
    phoneType=phoneFacebook;
    打破
    }
    否则{
    后藤案“谷歌+”;
    }
    案例“谷歌+”:
    案例“附加”:
    phoneType=phoneGooglePlus;
    打破
    违约:
    phoneType=phoneDefault;
    打破
    }
    $(“li.phone”).replace为(“
  • ”+phoneType+”
  • ”);
    谈到更简洁的解决方案,另一种方法是将它们保存在二维数组中并检索元素索引

    看看这个:

    var csz= 'amazon';
    
    var groups = [['google','yahoo','bing'],['facebook','orkut','hi5','zurker'],['amazon','bestbuy','sears']];
    var groupIndex = getIndexOf(groups,csz);
    if(groupIndex ==1){
        //code here
        alert("1");
    }else if(groupIndex ==2){
        //code here
        alert("2");
    }else if(groupIndex ==3){
        //code here
        alert("3");
    }
    
    function getIndexOf(myArray,element){
        for(var i=0;i<groups.length;i++){
            for(var j=0;j<groups[i].length;j++){
                if(myArray[i][j]==element){
                    return i;  
                }
            }
        }        
        return -1;
    }
    
    var csz='amazon';
    var组=['google'、'yahoo'、'bing']、['facebook'、'orkut'、'hi5'、'zurker']、['amazon'、'bestbuy'、'sears'];
    var groupIndex=getIndexOf(组,csz);
    if(groupIndex==1){
    //代码在这里
    警报(“1”);
    }else if(groupIndex==2){
    //代码在这里
    警报(“2”);
    }else if(groupIndex==3){
    //代码在这里
    警报(“3”);
    }
    函数getIndexOf(myArray,元素){
    
    对于(var i=0;i谈论更整洁的解决方案,另一种方法是将它们保存在二维数组中并检索元素索引

    看看这个:

    var csz= 'amazon';
    
    var groups = [['google','yahoo','bing'],['facebook','orkut','hi5','zurker'],['amazon','bestbuy','sears']];
    var groupIndex = getIndexOf(groups,csz);
    if(groupIndex ==1){
        //code here
        alert("1");
    }else if(groupIndex ==2){
        //code here
        alert("2");
    }else if(groupIndex ==3){
        //code here
        alert("3");
    }
    
    function getIndexOf(myArray,element){
        for(var i=0;i<groups.length;i++){
            for(var j=0;j<groups[i].length;j++){
                if(myArray[i][j]==element){
                    return i;  
                }
            }
        }        
        return -1;
    }
    
    var csz='amazon';
    var组=['google'、'yahoo'、'bing']、['facebook'、'orkut'、'hi5'、'zurker']、['amazon'、'bestbuy'、'sears'];
    var groupIndex=getIndexOf(组,csz);
    if(groupIndex==1){
    //代码在这里
    警报(“1”);
    }else if(groupIndex==2){
    //代码在这里
    警报(“2”);
    }else if(groupIndex==3){
    //代码在这里
    警报(“3”);
    }
    函数getIndexOf(myArray,元素){
    
    对于(var i=0;我可以自己查找。这可能取决于运行它的浏览器。我从未使用过此工具。感谢您指点我!我不知道这是如何工作的?您不能只比较两个数组。解释起来有点复杂,但您是对的,数组可能更合适。基本上,我从URL提取了参数(可能存在也可能不存在),以及从Google Analytics cookie中提取的参数。更重要的参数是通过URL传递的参数,因为这意味着传入的链接最有可能来自付费广告。不太重要的是GA utmz cookie中的参数。我正在测试哪些参数存在,哪些不存在,以及呈现给用户有合适的电话号码打电话。然后找到你自己。这可能取决于运行它的浏览器。我从未使用过这个工具。谢谢你指点我!我不明白这是怎么回事?你不能只比较两个数组。解释起来有点复杂,但你是对的,数组可能更合适。基本上,我有参数从URL提取的rs(可能存在也可能不存在),以及从Google Analytics cookie中提取的参数。更重要的参数是通过URL传递的参数,因为这意味着传入的链接最有可能来自付费广告。不太重要的是GA utmz cookie中的参数。我正在测试哪些参数存在,哪些不存在,以及呈现给用户有合适的电话号码打电话。我喜欢它的样子!它更干净,更符合我的想法。我要给它旋转-谢谢!我喜欢它的样子!它更干净,更符合我的想法。我要给它旋转-谢谢!