2012-02-03 86 views
0

我有JavaScript从表单中获取条目,然后在使用“GET”将这些表单输入应用于值之后搜索位置,因为您可以看到它最终与我一起使用for声明夫妇由一个非常长的if/else if语句。什么是提高效率的最佳途径?else if语句效率变量分配

谢谢!

var search = location.search; 
var parts = search.slice(1).split('&'); // Need to slice to remove initial '?' 
for (var i=0; i < parts.length; ++i) 
{ 
    var info = parts[i].split('='); 
    var variable = info[0]; 
    var value = info[1]; 
    if(variable === "pNAME") { 
      var pNAME = value;  
    } 
    else if(variable === "mAB") { 
      var mAB = value;  
    } 
    else if(variable === "mPB") { 
      var mPB = value;  
    } 
    else if(variable === "mNA") { 
      var mNA = value;  
    } 
    else if(variable === "lPED") { 
      var lPED = value;  
    } 
    else if(variable === "lSS") { 
      var lSS = value;  
    } 
    else if(variable === "lSC") { 
      var lSC = value;  
    } 
    else if(variable === "lVIS") { 
      var lVIS = value;  
    } 
    else if(variable === "lPAR") { 
      var lPAR = value;  
    } 
    else if(variable === "lBUS") { 
      var lBUS = value;  
    } 
    else if(variable === "lTRAIN") { 
      var lTRAIN = value;  
    } 
    else if(variable === "cHT") { 
      var cHT = value;  
    } 
    else if(variable === "cRAM") { 
      var cRAM = value;  
    } 
    else if(variable === "cTMS") { 
      var cTMS = value;  
    } 
    else if(variable === "cCC") { 
      var cCC = value;  
    } 
    else if(variable === "cCG") { 
      var cCG = value;  
    } 
    else if(variable === "cSTRL") { 
      var cSTRL = value;  
    } 
    else if(variable === "cWEAL") { 
      var cWEAL = value;  
    } 
    else if(variable === "deWHI") { 
      var deWHI = value;  
    } 
    else if(variable === "deASI") { 
      var deASI = value;  
    } 
    else if(variable === "deBLA") { 
      var deBLA = value;  
    } 
    else if(variable === "deOTH") { 
      var deOTH = value;  
    } 
    else if(variable === "daYOU") { 
      var daYOU = value;  
    } 
    else if(variable === "daYM") { 
      var daYM = value;  
    } 
    else if(variable === "daM") { 
      var daM = value;  
    } 
    else if(variable === "daOL") { 
      var daOL = value;  
    } 
    else if(variable === "doPOP") { 
      var doPOP = value;  
    } 
    else if(variable === "doDENS") { 
      var doDENS = value;  
    } 
    else if(variable === "doSTU") { 
      var doSTU = value;  
    } 
}; 

谢谢高级!

+0

你如何使用这些变量? – TJHeuvel 2012-02-03 10:08:25

回答

3

您可以使用变量 名称作为属性名称将对象从其中分配并指定为属性。喜欢的东西:

var myVar = {}; 
    for (var i=0; i < parts.length; ++i){ 
    var info = parts[i].split('='); 
    myVar[info[0]] = info[1]; 
    } 

现在你把所有的变量和值在一个对象,可寻址例如作为myVar.lSSmyVar.pNAME

+0

完美工作,更简单! – BradStevenson 2012-02-03 10:22:03

0

把你PNAME,单克隆抗体......也是在阵列不是这样做

function inArray(needle, haystack) { 
var length = haystack.length; 
for(var i = 0; i < length; i++) { 
    if(haystack[i] == needle) return true; 
} 
return false; 

}