Javascript创建了许多变量

Cal*_*ell 0 javascript variables

我有一个阵列

    var n = ["Joe", "Peter", "Mary", "Chris", "Dave", "Sally", "Pat", "John", "Larry", "Andrew"];
Run Code Online (Sandbox Code Playgroud)

我想为数组中的每个字符串创建一个变量,即

    var Joe;
    var Peter;
    var Mary;
Run Code Online (Sandbox Code Playgroud)

我为MatLab 遇到过这个问题,但有没有办法用Javascript做到这一点?

这是我怎么想这样做的小提琴,但显然它不起作用!

T.J*_*der 6

...有没有办法用Javascript做到这一点?

不是一般情况下,没有. (呃,见下文.)你可以用全局变量来做,像这样:

var index;
for (index = 0; index < n.length; ++index) {
    window[n[index]] = /*...whatever value you want the global to have...*/;
}
Run Code Online (Sandbox Code Playgroud)

......但仅适用于全局(并且window是特定于浏览器环境,虽然它可能做一些类似的外部浏览器),并禁止一些非常具体的理由这样做,这不是一个好主意.

您可以为每个名称创建一个具有属性的对象:

var obj = {};
var index;
for (index = 0; index < n.length; ++index) {
    obj[n[index]] = /*...whatever value you want the global to have...*/;
}
Run Code Online (Sandbox Code Playgroud)

...这基本上是全局变量的情况,但是有一个对象而不是全局变量.但是,除非你有充分的理由去做,否则没有什么意义(虽然它没有像创建一堆全局变量那样有害).


好吧,这不是真实.你可以这样做:

var index;
for (index = 0; index < n.length; ++index) {
    eval("var " + n[index]);
}
Run Code Online (Sandbox Code Playgroud)

这实际上会在当前范围内使用名称来创建变量n.我不推荐它.:-)