2012-12-14 10 views
3

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!" 

감사합니다. 당신의 변수가 글로벌 맥락에서 정의 된 경우

+2

관련 : [jQuery를 언어 전환기] (http://stackoverflow.com/questions/13427723/jquery-language-switcher)를 참조하십시오. – Sampson

답변

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

var myLang = 'ESP'; 

console.log(hellos[myLang]); 

나는 전역 범위에서 최선을 다하는 좋아, 다음 문자열에 접근 윈도우 속성하지 않는다; 여기에 또 다른 방법이 있습니다.

+0

하, 나를 이길 :) –

+0

위대한 마음과하지 :) – Chad

4

, 당신은이 작업을 수행 할 수 있습니다

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

고마워요, 당신은 방금 내 삶과 나의 뉴런의 생명을 구했어! :) –

0

좋은 설명이 아니지만 eval() 기능을 사용해 볼 수 있습니다.

var myLang = "ESP"; 

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

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

'eval()'정말 강력하지만 그 힘을 학대 수 지적 가치가있다. 보안 (및 코드 유지 관리) 책임이 될 수 있습니다. –

+0

Richard 감사합니다. 이것이 내가 좋은 촉진제가 아니라고 말한 이유입니다. :) –

1
var myLang = "ESP"; 

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

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

당신은 그것에 대해 eval을 사용할 수 있지만 이것은 아주 나쁜 방법입니다 : 내가 제안 것이다

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

대신 객체를 가지고 :

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