我想在循环中创建一个动态变量。 我发现了一些关于eval和window的内容,但我不知道如何使用它。
这是我的循环,我想创建一个从m1到m9的9个变量名称。我的意思是变量的名称必须是m1到m9
for(i=1; i<10; i++){
var m+i = "Something"
}
请帮我解决这个问题。真的很感激。
答案 0 :(得分:4)
您不想创建9个变量。相信我。你想创建一个对象。
var m = {};
for(var i=1; i<10; i++){
m[i] = "Something";
}
你也可以创建一个数组(m = []
),但由于你是从1
开始而不是0
,我建议一个对象。
答案 1 :(得分:2)
但是如果你仍然想要创建9个变量,尽管如此,你仍然可以:
for(i=1; i<10; i++){
eval('var m'+i+'='+i)
}
(是的,你不应该)。
答案 2 :(得分:1)
var object = {};
var name = "m";
for(i=1; i<10; i++){
object[name+i] = "Something";
}
console.log(object.m1); // "Something", same for m2,m3,m4,m5...,m9
但是考虑一下"m"
是否真的有必要,数组更快:
var array = [];
for(i=1; i<10; i++){
array.push("Something");
}
console.log(array[0]); // "Something", same for 1,2,...,8