иначе, если эффективность оператора в распределении переменных - PullRequest
0 голосов
/ 03 февраля 2012

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

Спасибо!

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;      
  }
};

Спасибо заранее!

Ответы [ 2 ]

3 голосов
/ 03 февраля 2012

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

  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 голосов
/ 03 февраля 2012

поместите свой pNAME, mAB ... также в массив и затем сделайте это

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

}

...