javascript - 如何创建循环来创建变量?

标签 javascript jquery

假设我想要内容按如下方式增加的变量: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/

相关文章:

javascript - 如何将值从 HTML 传递到 Node JS?

javascript - 如何在我的网站上添加 Facebook 分享按钮?

javascript - 验证 (HTML5) : Attribute 'X' is not a valid attribute of element 'Y'

javascript - 在单页中渲染多个图像

javascript - 如何使用 Javascript 动态创建(或伪造)一个 <th> 单元格

javascript - rails : How to keep at least one form section displayed in edit forms

javascript - 使用 focus() 了解当前聚焦的元素

jquery - 从另一个 div 添加悬停触发器

javascript - 如何删除项目删除时的 ","?

javascript - 仅当没有被任何处理程序阻止时才触发事件?