2017-05-01 2 views
-1

개체의 값을 동적으로 가져 오려고합니다. 다음은 객체입니다.각 문자열 연결 4.0.3

myObj = { 
person1:{name:"John Doe", age:"46"}, 
person2:{name:"Peter Deer", age:"36"}, 
person3:{name:"Ben Boar", age:"21"} 
} 

객체에서 원하는 이름을 가져 오는 기능이 있습니다.

showPersonName(objKey: number) { 
console.log(this.myObj + 'person' +objKey.name); 
} 

의 I는 objKey로 1 신원 미상을 표시하는 것입니다 통과하면 내가 원하는 결과지만, 비주얼 스튜디오 코드

Property 'name' does not exist on type 'number'. 

하십시오를 보여줍니다 내가 무엇을 할 수, 다음은 기능인가? 나는 이것으로 어려움을 겪었다.

+0

전체 코드를 제공하십시오. 플 렁커가 도움이 될 것입니다. –

+0

개체에서 참조하려고하는 번호는 무엇입니까? 의미는이 객체 키 1 ?? 개체에 그러한 키가 없습니다. – Alex

답변

0

당신은 번호를

fetchMyObj(objKey: number) { 

objKey입니다 정의하고 당신은 name

업데이트 1을 검색 할 수있는 방법 :

showPersonName(objKey: number) { 
    console.log(this.myObj.find(obj =>{ return obj.age:objKey})) 
} 

개체 형식

myObj = [{name:"John Doe", age:46}, 
     {name:"Peter Deer", age:36}, 
     {name:"Ben Boar", age:21}]; 
,536,

PLUNKER

+0

John Doe를 가져 오려면 console.log (this.myObj.person1.name)만큼 쉽습니다. 하지만 어떤 사람 개체에서 이름을 얻을 수 있도록 함수에 숫자를 전달할 수 있으므로 동적으로 가져 오려고합니다. – Benny64

+0

구문이 잘못되었습니다. – Aravind

+0

새로운 각도로 나를 넣어주세요. – Benny64

0

오 마이! 내 문제는 연결의 부적절한 사용이었다. 나는 여기에서 도움을 찾았다 : JavaScript object: access variable property by name as string 나는 나의 경우에 대괄호를 사용하기로되어 있었다.

console.log(this.myObj['person' + objKey].name); 

그게 내 문제를 해결했습니다. 제 무지를 참아 주셔서 감사합니다 (특히 @Aravind).