2012-02-03 2 views
0

У меня есть JavaScript, который берет запись из формы, а затем ищет местоположение после использования «GET» для применения этих входных данных формы к значениям, так как вы можете видеть, что это заканчивается тем, что я использую for с помощью очень длинного оператора if/else if. Каков наилучший способ сделать это более эффективным?else if statement efficiency в распределении переменных

Спасибо!

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

ответ

3

Вы можете сделать объект из него и присвоить свойство как свойство, используя переменную имя в качестве имени свойства. Что-то вроде:

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

Теперь у вас есть все переменные и значение в одном объекте, адресация, например, как myVar.lSS или myVar.pNAME.

+0

Работает отлично, намного проще! – BradStevenson

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; 

}