如何在名称中使用其他变量值创建 javascript 变量
How to create javascript variable with other variable value in name
嗨,我需要在javascript循环中创建变量负载,所以假设我的循环从0开始绕了5次,到最后应该定义以下变量:
variable_0
variable_1
variable_2
variable_3
variable_4
谁能告诉我该怎么做?
这将通过在 window
对象上注册它们来创建"全局"变量:
for (var i = 0; i != 5; ++i) {
window['variable_' + i] = null;
}
这样做并不是很好=/更好的方法是定义一个在其中创建动态属性的对象。
var obj = {}
for (var i = 0; i != 5; ++i) {
obj['variable_' + i] = null;
}
console.log(obj.variable_0); // null
为什么不直接使用数组:
var variable = [];
如果真的想创建 5 个变量,需要选择它们的作用域,最简单的大概是 window
个,那么可以使用 sqare 括号语法:
for(var i=0;i<5; i++){
window["variable_" + i] = 0; // or anything really!
}
现在,以下变量可用:
window.variable_1 = 123
您只能创建可变命名的变量作为Object
的一部分:
obj['variable_' + i] = value;
函数范围的变量没有等效项,尽管您当然可以这样做:
function foo() {
var obj = {};
for (var i = 0; ... ) {
obj['variable_' + i] = value;
}
}
你可以通过使用window
全局对象代替obj
来伪造全局变量(但不应该),如@Jack所示。
当然,在大多数情况下(并且由于您使用数字来区分变量),您真正应该做的是使用数组:
var myvar = [];
for (var i = 0; i < n; ++i) {
myvar[i] = ...;
}
相关文章:
- JavaScript:单击时相对于父级增加变量值
- 如何通过ajax增加/减少PHP变量值并重新加载函数
- 如何从特定页面中提取php变量值
- JavaScript模数未正确递增变量值
- 替换另一个变量对象中的变量值
- mandrill合并标记不接受变量值
- 将变量值从一个javascript传递到另一个javascript
- 如何将变量值附加到另一个变量
- html类名中的数字形式的Javascript变量值
- 如何在C#中获取Javascript变量值
- 如何将C#变量值传递给javascript以使用amcharts
- 正在从addEventListener中获取变量值
- 使用变量值作为'名称标识符'javascript/html
- 为什么在以下代码段中无法访问中的变量值
- 我们可以在初始化variable Angular JS时将变量值声明为未定义吗
- 如何在名称中使用其他变量值创建 javascript 变量
- 使用 jQuery 从其他 JavaScript 文件设置变量值
- 如何将 angularjs 变量值获取到其他.js文件
- 使用window.opener或其他方法将弹出窗口中的javascript变量值设置为父级
- 如何将POST变量值附加到AJAX中的新SESSION变量并从其他脚本调用它?