【问题标题】:Javascript randomly generated variable namesJavascript 随机生成的变量名
【发布时间】:2015-06-26 23:23:40
【问题描述】:

所以我已经编程了一段时间,并且有很多次偶然发现有机会使用随机生成的变量名,这些变量名可以在以后使用。我想知道在没有库和数组的普通 javascript 中是否可以实现这种事情,以及我将如何去做。

我在想的一个例子(为了更好地展示我想问的问题)-->

function makeVariables(max) {
    while(max < 10) {
 var c(max) = "test";   
 max++;
}
}

现在说它产生了 10 个变量,命名为:c0、c1、c2、c3、c4、c5、c6、c7、c8、c9。

然后以后就可以调用它...

警报(c4);

尽管我知道这几行代码不起作用,但我想(如果可能的话)举个例子说明如何让它工作。

编辑

我对数组没有问题,我只是想知道它是否可能。我希望制作可以达到的不同变量,但我的问题已得到解答。所以感谢所有帮助者!

【问题讨论】:

  • 数组有什么问题?
  • 如果您正在寻找 javascript 来执行与 PHP 相同的操作,那么您就不走运了。我的意思是在 PHP 中你可以这样说:$cool = 'test' 然后$$cool = 5。之后变量 $test 将等于 5。正如其他人所提到的,您可以使用 eval 或窗口访问器来做您想做的事情,但这有点小技巧。
  • 在什么意义上随机生成顺序编号的名称?

标签: javascript variables


【解决方案1】:

怎么样:

function makeVariables(max, root) {
    // this would allow you to pass in a different 'container' for the vars
    root = root || window;
    while(max < 10) {
       root['c' + max] = 'test';
       max++;
    }
}

那你就可以了

makeVariables(10)
alert(c4);

这与(如果您不将第二个参数传递给makeVariables 函数,变量将存储在窗口对象中)相同:

makeVariables(10)
alert(window['c4']);

【讨论】:

  • 为什么函数中必须要有根变量?你不能只做window['c' + max] 而不是root['c' + max] 吗?你不能也用alert(c4) 代替`alert(window['c4']) 吗?
  • 是的,我只是想指出变量的存储位置,我进行了一些编辑,希望能更简单:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 1970-01-01
相关资源
最近更新 更多