3

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

var myLang = "ESP";

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

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

谢谢!

4

5 回答 5

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

var myLang = 'ESP';

console.log(hellos[myLang]);

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

于 2012-12-14T16:07:46.840 回答
4

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

console.log(window['myText_' + myLang]); 
于 2012-12-14T16:06:11.790 回答
1
var myLang = "ESP";

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

console.log(myText[myLang]); // This should trace "Hola a todos!"
于 2012-12-14T16:08:26.777 回答
1

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

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

我建议改用一个对象:

var myLang = "ESP";
var texts = {
    'ESP': "Hola a todos!",
    'ENG': "Hello everyboy!"
};
console.log( texts[ myLang ] );
于 2012-12-14T16:08:44.140 回答
0

这不是一个好的做法,但您可以尝试使用eval()函数。

var myLang = "ESP";

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

console.log(eval('myText_' + myLang));
于 2012-12-14T16:08:12.430 回答