简体   繁体   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>

The above code is hard-code which is correct. 上面的代码是硬代码,这是正确的。 Now I want to make the code more flexiable using for loop. 现在我想使用for循环使代码更灵活。 However, there is something wrong on data1_keysArr[i] = $value . 但是, data1_keysArr[i] = $value

Can anyone help me? 谁能帮我?

Thanks in advance! 提前致谢!

<script>

var keysArr = [1, 3, 5];

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

    data1_keysArr[i] = $value;


}

</script>

It looks like you're trying to use a for loop to access the previously hard coded values via constructed names. 看起来您正在尝试使用for循环通过构造名称访问以前的硬编码值。 If so then try the following 如果是,请尝试以下操作

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

I would recommend against this approach though because you're essentially defining a lot of global variables on demand with this code. 我建议不要采用这种方法,因为你实际上是用这个代码按需定义了很多全局变量。 Instead I would put them on a single container object. 相反,我会把它们放在一个容器对象上。 For example 例如

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

Try: 尝试:

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

EDIT: And JaredPar is right: You should probably use a container object. 编辑: JaredPar是对的:您应该使用容器对象。

W3Schools has a great tutorial on arrays , which you should read. W3Schools有一个很棒的数组教程 ,你应该阅读。 It will really help you out with this as it almost exactly matches your example. 它将真正帮助你解决这个问题,因为它几乎完全匹配你的例子。

Essentially, when you use "var" in the global context, you are assigning values to the window object. 实质上,当您在全局上下文中使用“var”时,您将为窗口对象分配值。 Thus, you could do the following: 因此,您可以执行以下操作:

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

However, it would be more correct to use an array for your values (see the tutorial to understand this): 但是,为数组使用数组更为正确(请参阅教程以了解这一点):

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