Javascript [quot;var";&x2B;1]=someValue-可以这样做吗?

Javascript [quot;var";&x2B;1]=someValue-可以这样做吗?,javascript,dynamic-variables,Javascript,Dynamic Variables,你明白了 关键是我有几个名字相似的变量,只是在结尾的数字上有所不同。使用switch语句可以多次使用几个变量,但对于这个特定的项目,它让我发疯。我知道我能做到: function giveValue(n){ ["r"+n]=5; } giveValue(10); 我想知道我是否可以做这样的事情,但是在作业左边的动态引用 有可能吗?最好的方法是创建一个名为r的数组: var r2="lol"; var someVar=eval("r"+2); //someVar=="lol" 最好的方

你明白了

关键是我有几个名字相似的变量,只是在结尾的数字上有所不同。使用switch语句可以多次使用几个变量,但对于这个特定的项目,它让我发疯。我知道我能做到:

function giveValue(n){
    ["r"+n]=5;
}
giveValue(10);
我想知道我是否可以做这样的事情,但是在作业左边的动态引用


有可能吗?

最好的方法是创建一个名为
r
的数组:

var r2="lol";
var someVar=eval("r"+2);
//someVar=="lol"

最好的方法是创建一个名为
r
的数组:

var r2="lol";
var someVar=eval("r"+2);
//someVar=="lol"
如果你真的想这样做,这应该是可行的:

var r = [];
r[2] = 5;
但是请不要这样做

你真的应该

如果你真的想这样做,这应该是可行的:

var r = [];
r[2] = 5;
但是请不要这样做



你真的应该

数组有什么问题?输入
r[2]
而不是
r2
真的那么难吗?我们就说现在太晚了。可能吗?对好主意?不,这不是一个好主意,第一个使用第一种动态语言的人想到了这样的事情,而且从那以后就没有改进。如果你想在一个名称下存储多个值并将它们与数字(索引)关联,那么就使用该死的数组,或者使用映射(在JS中,任何对象都可以)通过字符串将它们关联起来。现在已经太迟了,但通过到处抛出
eval
来搞乱其余代码还不算晚?从长远来看,按照@Gath所说的,现在修好它,你将节省更多的时间/金钱。除了我担心这样的代码有着根本性的缺陷,以至于“修复它”等于“增量重写整个P.O.S.”。数组有什么问题?输入
r[2]
而不是
r2
真的那么难吗?我们就说现在太晚了。可能吗?对好主意?不,这不是一个好主意,第一个使用第一种动态语言的人想到了这样的事情,而且从那以后就没有改进。如果你想在一个名称下存储多个值并将它们与数字(索引)关联,那么就使用该死的数组,或者使用映射(在JS中,任何对象都可以)通过字符串将它们关联起来。现在已经太迟了,但通过到处抛出
eval
来搞乱其余代码还不算晚?从长远来看,按照@Gath所说的,现在修好它,你将节省更多的时间/金钱。除了我担心这样的代码有着根本性的缺陷,以至于“修复它”就等于“逐步重写整个P.O.S.”。我现在的问题更多的是好奇,而不是实用性。没有阵列能做到吗?@navad:arrays不仅实用,而且理智;)好吧,好吧,我会用那该死的蜘蛛网。我只是想知道这是怎么回事。我现在的问题更多的是好奇心,而不是实用性。没有阵列能做到吗?@navad:arrays不仅实用,而且理智;)好吧,好吧,我会用那该死的蜘蛛网。我只是想知道这是怎么做到的。我想这样的事情是可以做到的。非常感谢。在看到所有警报的答案后,我将更改代码并使用数组,但很高兴知道这可能发生。@Eric:太晚了,你释放了怪物!又一个可怕的剧本出现在野外@看到答案旁边的灰色记号了吗?单击问题最佳答案旁边的一个,将其标记为正确答案。我认识那个家伙。但直到几分钟过去,它才让我接受它。@navand:对不起,我不知道从“接受两个答案中的一个?什么?”中可以推断出什么,我想这样的事情是可以做到的。非常感谢。在看到所有警报的答案后,我将更改代码并使用数组,但很高兴知道这可能发生。@Eric:太晚了,你释放了怪物!又一个可怕的剧本出现在野外@看到答案旁边的灰色记号了吗?单击问题最佳答案旁边的一个,将其标记为正确答案。我认识那个家伙。但直到几分钟过去,它才让我接受它。@navand:对不起,我不知道从“接受两个答案中的一个?什么?”中可以推断出什么