我得到这个代码:合并2个变量成1串,然后把这个字符串作为变量
var currentsettimevarstring = 'settimevar' + c,
currentsettimevar = currentsettimevarstring;
我想的currentsettimevarstring
输出为settimevar1
(或2,3,4,等) 和currentsettimevar
的输出作为变量的内容settimevar1
这怎么办?
我得到这个代码:合并2个变量成1串,然后把这个字符串作为变量
var currentsettimevarstring = 'settimevar' + c,
currentsettimevar = currentsettimevarstring;
我想的currentsettimevarstring
输出为settimevar1
(或2,3,4,等) 和currentsettimevar
的输出作为变量的内容settimevar1
这怎么办?
您应该能够使用eval这个:var currentsettimevar = eval('sitetimevar' + c)
请记住,使用eval可以be a bad idea.
如果settimevar
变量是全局变量,可以使用currentsettimevarstring
引用它们的window
对象作为重点:
var currentsettimevar = window[currentsettimevarstring];
如果不是全局变量,那么你可能要考虑将它们存储在数组或PR可以通过键引用的对象的操作。
var settimevar = ['a', 'b', 'c', 'd', 'e'];
var c = 5;
var currentsettimevar = settimevar[c - 1];
这是一个duplicate。
基本上,JavaScript具有全局范围,您可以通过'window'变量访问全局范围,并像定义任何其他集合一样索引定义的变量。
var c = 5;
var settimevar5 = "Some String";
var currentsettimevarstring = 'settimevar' + c,
var currentsettimevar = window[currentsettimevarstring];
currentsettimevar现在应该是 “一些字符串”
只有在全球范围内才有效......或者如果他们的变量或成员脱离了另一个对象......没有迹象表明情况如此。我不明白这是一个重复的问题。 –
@justnS:因为它的问题大致相同,所以如果将变量的名称作为字符串,如何获取变量的值。 –
确实。我确实说过这适用于全球范围以及任何其他收藏。如果你在一个函数中,关闭,那么你可以使用this []而不是window []来实现同样的功能。 – Joe
使用数组来代替:
var settimevar = ['value1', 'value2', 'value3'],
c = 0, /* for example */
currentsettimevar = settimevar[c];
我想'eval' ......但是这不是一个好主意。你为什么做这个? – tymeJV
这对于比如说代码混淆比赛或者练习某种元编程来说是合理的。但是你应该意识到在“普通”代码中这是不合理的。有很多更好的方法可以完成......无论你想要完成什么。 –