for循环中的JavaScript动态变量

时间:2012-11-09 08:25:45

标签: javascript variables dynamic

我需要在javascript中创建一些规则,如下所示。我想在for循环中创建这些规则,但是我无法动态创建变量部分。

var _docmap = document.mappingsTanimlari;
    if(_docmap.addServerOrClusterValue0.value != ""){
        arr.push(_docmap.addServerOrCluster0.value + _docmap.addServerOrClusterValue0.value)
    }
    if(_docmap.addServerOrClusterValue1.value != ""){
        arr.push(_docmap.addServerOrCluster1.value + _docmap.addServerOrClusterValue1.value)
    }
    if(_docmap.addServerOrClusterValue2.value != ""){
        arr.push(_docmap.addServerOrCluster2.value + _docmap.addServerOrClusterValue2.value)
    }
    if(_docmap.addServerOrClusterValue3.value != ""){
        arr.push(_docmap.addServerOrCluster3.value + _docmap.addServerOrClusterValue3.value)
    }
    if(_docmap.addServerOrClusterValue4.value != ""){
        arr.push(_docmap.addServerOrCluster4.value + _docmap.addServerOrClusterValue4.value)
    }

2 个答案:

答案 0 :(得分:0)

首先,我要说代码看起来很糟糕,但这里是如何做到的。您需要使用括号表示法而不是点表示法,以便您可以传递字符串并连接索引:

for ( var i = 0; i <= 4; i++ ) {

  if ( document.mappingsTanimlari[ 'addServerOrClusterValue'+ i ].value ) {
    ...
  }

}

答案 1 :(得分:0)

为什么不这样做?

var arr = new Array();
var data = document.mappingsTanimlari;

for(var i=data.length;i--;) {
 if(data[i].value != "") {
  arr.push(data[i].value + data[i].value);
 }
}