2016-07-10 4 views
2

index==2을 TypeScript로 찾으려면 어떻게해야합니까?TypeScript : 개체의 키/값 찾기 (목록 이해)

myObj = { 
    policy : { 
      index: 1, 
      page : "/summer" 
     }, 
    purchase : { 
      index: 2, 
      page : "/sun" 
     } 
} 

예.

for (var key in myObj) { 
    if (myObj.hasOwnProperty(key)) { 
    if (myObj[key].index === 2) 
     console.log("Found."); 
    } 
} 

JS 또는 TS에서이를보다 효율적으로 수행하는 방법은 무엇입니까? 이 myObj.hasOwnProperty(key)을 확인 할 필요를 제거하기 때문에

Object.keys(myObj).forEach(key => { 
    if (myObj[key].index === 2) { 
     console.log("Found."); 
    } 
}); 

:

+4

당신이 js에서하는 것과 동일 – Zen

+0

그것은 상당히 dissapointing입니다. 그래서 "TypeScript는 CoffeeScript에서 많은 것을 얻었습니다"라는 뻔뻔한 거짓말이 있었습니까? – nottinhill

+1

누가 타이프 스크립트가 CofeeScript에서 많은 것을 얻었는지 누가 말했습니까? 그것은 자바 스크립트 수퍼 셋입니다. 뭔가가 있으면 C#에 더 가깝습니다. : P 당신은 언제나 lodash를 추가하고 그것을 (타입 유추와 함께) 사용할 수 있습니다. :) – toskv

답변

6

자바 스크립트 현명한 나는 Object.keys() 기능을 사용하십시오.

Object.keys(myObj).some(key => myObj[key].index === 2); 
1

사용 Array.find :

Object.keys(myObj).find(k => myObj[k].index === 2) 

이 경기가 발생한 키를 반환합니다 하나가 발견 된 때 검색을 중지하려면

.