如何通过更改变量名称来添加固定变量名称
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;
EDIT: JaredPar是对的:你应该使用一个容器对象
W3Schools有一个很好的数组教程,你应该阅读。它真的会帮助你解决这个问题,因为它几乎完全符合你的例子。
本质上,当你在全局上下文中使用"var"时,你是在给window对象赋值。因此,您可以执行以下操作:
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;
}
相关文章:
- AngularJS-在JSON选择器中使用变量名
- 命令行中的Uglify js;不要弄乱变量名
- 像createComment这样的各种自定义变量名在内联javascript中被覆盖,但在外部js中没有.为什么?
- 这在JavaScript中是一个好的变量名吗
- ko.com在foreach$data变量上添加了write函数
- 在javascript中,在变量名之前使用var有什么区别/优势吗
- 在Javascript中连接一个动态变量名
- 如何使用jQuery循环变量名
- JavaScript将字符串转换为变量名
- 在javascript变量中添加php定义变量
- 根据发送到javascript中函数的参数创建变量名
- 在javascript中的现有变量名中添加一个变量
- 我有一个表单和一个按钮来添加它的副本.我希望重复的无线电输入具有变量名
- 如何将计数器变量添加到变量名
- 为什么在JS库中复制变量名并添加“或对象”是常见的做法
- 在Angular.js中,为变量名添加字符串
- 将变量名添加到HTML标记中
- 根据传递的变量动态添加子字段名
- 如何将counter的值正确地添加到变量名中
- JS-使用for将数组添加到具有变量名操作的数组中