从字符串中获取变量

时间:2012-12-14 16:05:08

标签: javascript eval

有谁知道如何在JavaScript中从String中选择变量?这就是我基本上想要实现的目标:

var myLang = "ESP";

var myText_ESP = "Hola a todos!";
var myText_ENG = "Hello everybody!";

console.log(myText_ + myLang); // This should trace "Hola a todos!"

谢谢!

5 个答案:

答案 0 :(得分:6)

var hellos = {
    ESP: 'Hola a todos!',
    ENG: 'Hello everybody!'
};

var myLang = 'ESP';

console.log(hellos[myLang]);

我不喜欢将所有内容放在全局范围内,然后将字符串访问窗口属性;所以这是另一种方法。

答案 1 :(得分:4)

如果您的变量是在全局上下文中定义的,那么您可以这样做:

console.log(window['myText_' + myLang]); 

答案 2 :(得分:1)

var myLang = "ESP";

var myText = {
    ESP : "Hola a todos!",
    ENG : "Hello everybody!"
}

console.log(myText[myLang]); // This should trace "Hola a todos!"

答案 3 :(得分:1)

您可以使用eval,但这是非常糟糕的做法:

console.log(eval("myText_" + myLang);

我建议改为使用对象:

var myLang = "ESP";
var texts = {
    'ESP': "Hola a todos!",
    'ENG': "Hello everyboy!"
};
console.log( texts[ myLang ] );

答案 4 :(得分:0)

这不是一个好习惯,但您可以尝试使用eval()功能。

var myLang = "ESP";

var myText_ESP = "Hola a todos!";
var myText_ENG = "Hello everyboy!";

console.log(eval('myText_' + myLang));