假设我想要内容按如下方式增加的变量:1, 2, 3, 4, 5, 6, 7, 8, 9, 10
。但假设我有一些变量,我希望它们的名称增加如下:aaa、aab、aac、aad、aae、aaf、aag、aah、aai、aaj
。
换句话说,我想要一个能够创建以下内容的循环:
var aaa = 1;
var aab = 2;
var aac = 3;
var aad = 4;
var aae = 5;
var aaf = 6;
var aag = 7;
var aah = 8;
var aai = 9;
var aaj = 10;
只是说,变量名部分的想法是,一旦到达“aaz”,它就可以继续“aba”,同样,当到达“azz”时,它会继续“zaa”。
最佳答案
这是一种方法:
var s = "";
for (var i = 0, s = ""; i < 26; ++i)
for (var i2 = 0; i2 < 26; ++i2)
for (var i3 = 0; i3 < 26; ++i3)
s += "var " + String.fromCharCode(97+i) + String.fromCharCode(97+i2) + String.fromCharCode(97+i3) + " = " + (i*26*26+i2*26+i3)+";\r\n";
您可以通过调用eval(s)
一次性创建所有变量。
警告:某些字母组合是关键字(如 var new = 8914;
是一个错误),如果您打算这样做,eval() 将失败。相反,您应该像这样在对象上设置值:
function createVariables(obj) {
for (var i = 0, s = ""; i < 26; ++i)
for (var i2 = 0; i2 < 26; ++i2)
for (var i3 = 0; i3 < 26; ++i3)
obj[String.fromCharCode(97+i) + String.fromCharCode(97+i2) + String.fromCharCode(97+i3)] = i*26*26+i2*26+i3;
return obj;
}
var vars = createVariables({});
您总共将拥有 26*26*26,即 17576 个变量。
关于javascript - 如何创建循环来创建变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29712426/