是否有编写以下 100 个作业的快捷方式?
variable_1 = 1;
variable_2 = 2;
variable_3 = 3;
...
variable_100 = 100;
我试过了
for(var i = 1; i <= 100; i++) {
variable_ + i = i;
}
但我收到错误消息“分配中的左侧无效”。有什么想法吗?
最佳答案
这里有几种方法:
方法一:使用eval
这是最直接的方法:
for(var i = 1; i <= 100; i++) {
eval("var variable_" + i + " = " + i);
}
variable_1; // => 1
上述方法的免责声明:我认为这个问题不适合使用eval
。如果您确实使用了eval
,则您永远不应允许用户输入进入您正在eval
的内容,否则您可能会打开您的站点以确保安全风险。这个错误是人们说 eval
是邪恶的主要原因。
方法二:使用动态生成的对象属性
这是一个好得多的方法:
// If you want these variables to be global, then use `window` (if you're
// in a browser) instead of your own object.
var obj = {};
for(var i = 1; i <= 100; i++) {
obj["variable_" + i] = i;
}
obj.variable_1; // => 1
关于评论中关于使用窗口创建全局变量的说明:我不建议这样做,因为这是污染全局范围并无意中踩到变量的快速方法。
方法三:使用数组
David 建议使用数组。这是另一个好主意,并且根据您要尝试执行的操作,可能是首选:
var arr = [];
for(var i = 1; i <= 100; i++) {
arr.push(i);
}
arr[0]; // => 1
关于javascript - 以编程方式设置变量的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8525221/