嗨,我需要在 javascript 循环中创建大量变量,所以说我的循环从 0 开始循环 5 次,到它结束时应该定义以下变量:
variable_0
variable_1
variable_2
variable_3
variable_4
谁能告诉我该怎么做?
嗨,我需要在 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
,那么你可以使用方括号语法:
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] = ...;
}