我正在尝试创建一堆这样的变量:
function l(){
var a1 = 2,
a2 = 4,
a3 = 6,
a4 = 8,
.
.
a20 = 40;
}
但这需要太多线路,我正在寻找一种更聪明的方法。这就是我的想法:
function l(){
for(var i=0; i<20; i++){
var ("a"+i) = 2*i;
}
}
但它可能无效,如果它有效(它没有),变量仍然在有什么想法吗?for
范围内。
window["a"+i] or eval(...)
这些不起作用,因为我不希望它们在全球范围内。
通常一个数组会很好,但我只是在试验这是否可以在JavaScript中实现。也许将来我会遇到这样的事情。
答案 0 :(得分:15)
不要这样做。做。不。做。这个。 使用数组。
如果您以编程方式创建它们的麻烦,您认为如何以编程方式将引用到它们?
答案 1 :(得分:3)
我想你最好使用数组,例如:
function l(){
var a = [];
for(var i=0; i<20; i++){
a[i] = 2*i;
}
}
或者,如果你真的想要很长的变量列表,试试这个。但它使用eval()
function l(){
var js = '';
for(var i=0; i<20; i++){
js += 'var a'+i+' = '+2*i+';'
}
eval (js);
}
答案 2 :(得分:3)
事实上,我认为使用对象是一个好主意。
var scope = {}
for (var i=1;i<=20;i++) {
scope['a'+i] = 'stuff';
}
结果将是您有一个scope
对象,其中包含您想要的每个新创建变量!