繁体   English   中英

如何使用更改变量名称添加固定变量名称

[英]How to add fixed variable name with changing variable name

<script>
    var data1_1 = $value;

    var data1_3 = $value;

    var data1_5 = $value;

</script>

上面的代码是硬代码,这是正确的。 现在我想使用for循环使代码更灵活。 但是, data1_keysArr[i] = $value

谁能帮我?

提前致谢!

<script>

var keysArr = [1, 3, 5];

for(var i=0; i<keyArr.length; i++){

    data1_keysArr[i] = $value;


}

</script>

看起来您正在尝试使用for循环通过构造名称访问以前的硬编码值。 如果是,请尝试以下操作

var keysArr = [1, 3, 5];
for (var i = 0; i < keyArr.length; i++) {
  var name = 'data1_' + keyArr[i];
  window[name] = $value;
}

我建议不要采用这种方法,因为你实际上是用这个代码按需定义了很多全局变量。 相反,我会把它们放在一个容器对象上。 例如

var parent = {};
var keysArr = [1, 3, 5];
for (var i = 0; i < keyArr.length; i++) {
  var name = 'data1_' + keyArr[i];
  parent[name] = $value;
}

console.log(parent.data1_1);  // Prints $value

尝试:

window['data1_' + keysArr[i]] = $value;

编辑: JaredPar是对的:您应该使用容器对象。

W3Schools有一个很棒的数组教程 ,你应该阅读。 它将真正帮助你解决这个问题,因为它几乎完全匹配你的例子。

实质上,当您在全局上下文中使用“var”时,您将为窗口对象分配值。 因此,您可以执行以下操作:

var keysArr = [1, 3, 5];
for(var i=0; i<keysArr.length; i++) {
   window['data1_'+keysArr[i]] = $value;
}

但是,为数组使用数组更为正确(请参阅教程以了解这一点):

var i, key, 
    keysArr = [1, 3, 5],
    data = [];

for(i=0; i < keysArr.length; i++) {
   key = keysArr[i];
   data[key] = $value;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM