최근에 문제가 발생했습니다.
var obj = {"name1 ":"Zhang San","name2":"lee思"};
var key = "name1";
var value = obj.key;//got "undefine"
값 = obj .name1;//got "Zhang San"
실제로는 키에 동적으로 값을 할당한 다음 키에 해당하는 값을 가져오고 싶습니다. 그러나 이 접근 방식은 작동하지 않습니다. obj.key는 obj에서 키 "key"에 해당하는 값을 찾습니다.
그래서 생각한 방법은 js에서 객체 속성을 순회하는 방법입니다:
function printObject(obj){
//obj = {"cid":"C0","ctext":"지구 및 카운티"}
var temp = "";
for( var i in obj){//객체의 속성을 탐색하려면 자바스크립트의 for/in 루프를 사용하세요.
temp = i ":" obj[i] "n"
}
Alert(temp);// 결과: cid:C0 n ctext:District and County
}
이렇게 하면 js에서 객체의 키와 값이 무엇인지 명확하게 알 수 있습니다. .
이전 질문으로 돌아가서 키에 값을 동적으로 할당한 다음 obj.key 형식으로 해당 값을 가져오는 방법은 무엇입니까?
사실 위의 printObject에는 obj[key] 메서드를 사용한다는 힌트가 있습니다. 키는 위에서 제기한 문제를 해결합니다.
마지막으로 사용할 수 있는 또 다른 방법이 있습니다. 즉, eval("obj." key)입니다.
요약:
js의 동적 키를 기반으로 객체에서 해당 값을 가져오는 방법에는 두 가지가 있습니다.
1. var key = "name1";var value = obj[ 키];
2. var key = "name1"; var value = eval("obj." key);