【问题标题】:else if statement efficiency in variable allocationelse if 语句在变量分配中的效率
【发布时间】:2012-02-03 10:06:19
【问题描述】:

我有 JavaScript,它从表单中获取条目,然后在使用“GET”将这些表单输入应用于值之后搜索位置,正如您所看到的那样,它最终导致我使用 for 语句对很长的 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;      
  }
};

谢谢你!

【问题讨论】:

  • 你如何使用这些变量?

标签: javascript html string forms if-statement


【解决方案1】:

你可以用它创建一个对象并将变量分配为属性,使用变量 名称作为属性名称。比如:

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

现在您将所有变量和值都放在一个对象中,例如可寻址为myVar.lSSmyVar.pNAME

【讨论】:

  • 完美运行,简单多了!
【解决方案2】:

将您的 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;

}

【讨论】:

    猜你喜欢
    • 2014-03-05
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-02
    相关资源
    最近更新 更多