[英]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.