2011-05-16 7 views
0

driver.my_friends["793659690"].name과 같은 값에 액세스 할 수 있지만 지금은 key이 키를 보유하는 루프에서 사용하고 있습니다.키가있는 JS 객체에 액세스

driver.my_friends[key].name이 작동하지 않습니다. 정의되지 않았으며 driver.my_friends["key"].name은 key라는 키를 찾을 것입니다. 변수의 변수도 평가할 수 있도록 어떻게 사용해야합니까?

+2

'driver.my_friends를 읽는 데 사용 된 것과 동일합니다 [key] .name'이 작동해야하므로, 반복하는 'key'가 존재하지 않을 가능성이 높습니다. 직접 다른 데이터를 디버깅하거나 주변 코드를 더 제공하십시오. – mVChr

+0

'driver.my_friends [key] .name '이 맞습니다. 내 생각 엔'key'가 잘못된 값으로 설정되어있을 것입니다. [jsFiddle을보십시오] (http://jsfiddle.net/N7ys3/)를보십시오. – lonesomeday

+0

@mVChr @lonesomeday 고마워! 당신이 옳았어요, 논리 오류 X ( – Ashfame

답변

0

driver.my_friends[key].name이 올바른 방법입니다. key과 같은 키가 driver.my_friends =에 존재하지 않으며 해당 개체에 .name이 존재하지 않을 수도 있습니다.

당신은 아주 쉽게 디버깅 할 수 있습니다 :

console.log(driver.my_friends[key]); 
console.log(driver.my_friends[key].name); 

심지어 IE8 그런 콘솔을 가지고있다.

+0

고마워요! 열쇠가 그 열쇠에 존재하지 않았고 내 열쇠는 가치가 있었고 열쇠는 아주 작은 숫자였습니다.) – Ashfame

1

개체의 속성을 반복 할 때 일부 "가비지"가 "키"변수에 들어갈 수 있습니다. 나는 다음과 같은 제안 : 또한

for (var key in driver.my_friends) { 
    if (key && driver.my_friends[key] && driver.my_friends[key].name) { 
    // Do what you need here 
    } 
} 

를 [키] driver.my_friends의 값이 설정 될때 있는지 확인 키는

+0

좋은 점 감사합니다 :) – Ashfame

관련 문제