2012-10-24 3 views
1

자바 스크립트 원리에 대한 도움이 필요합니다. 변수 이름의 일부가 "동적"인 변수가 있습니다. 설명하겠습니다.두 변수에서 변수 값을 얻는 방법

var name_city = "London"; 
var name_code = "500"; 

웹 페이지에서 "유형"이라는 값이 있습니다. 이것은 "도시"또는 "코드"입니다.

var type = "city"; 

그래서 형의 값으로 "도시"로, 지금은 "name_city"을 경고 할 (난 그냥이 예제를 위해 수동으로 실시 여기을). 하지만 자바 스크립트로 이것을하는 방법에 대한 생각이 없습니다.

아는 사람 있습니까? PHP에서

은 내가 이렇게 될 것이라고 생각 :

$type = "city"; 

$varname = 'name_'. $type; 
echo ${$varname}; 

내가 어떤 도움이나 이러한 목표를 달성하기 위해

+0

다음을 참조하십시오. http://stackoverflow.com/questions/7762502/dynamic-javascript-variable-names, http://stackoverflow.com/questions/4385084/javascript-dynamic-variables?lq=1 또는 http://stackoverflow.com/questions/12826154/can-i-create-dynamic-object-names-in-javascript?lq=1 – Chase

답변

2

:-) 올바른 방향으로 몇 가지 단서를 주셔서 감사합니다, 당신은 저장해야 리터럴의 데이터를 동적으로 액세스 할 수 있습니다. global/window 개체에 변수를 쓰는 경우 동일한 방법으로 액세스 할 수 있습니다.

// global scope 
var name_city = "London"; 

var type = "city"; 

console.log(window[ "name_" + type ]); 

당신은 (실제로, 모든 경우 안 함) 전역 범위에 있지 않은 경우 작동하지 않습니다. 그래서 당신은 자기 정의 객체

var data = { 
    "name_city": "London", 
    "name_code": "500" 
}; 

에 데이터를 저장해야하며, 여러 "병렬"변수의 모든 설명 다양한 측면이있는 경우 다음

console.log(data[ "name_" + type ]); 
+1

+1 내 앞에서 범위 문제를 마쳤으므로 위에서 삭제했습니다. –

+0

이것은 내가 찾고 있었던 것이다. 고맙습니다! – user1771176

0

를 통해 같은 일, 바로 액세스 할 같은 엔티티, 당신은 거의 항상, 대신 객체를 사용하여 더 나을 것, 즉

var name = {city: "London", code: 500}; 

그런 다음 변수, 예와 색인에 의해 각각의 속성에 액세스 할 수 있습니다 name[type] 또는 속성 이름 (예 : name.code. 큰 장점은 여러 변수를 전달하지 않고 함수에 전달하는 것과 같은 목적으로 객체를 하나의 단위로 취급 할 수 있다는 것입니다.

관련 문제