2017-01-12 4 views
2

null 통합과 정의되지 않은 방법을 모두 수행하는 더 깨끗한 방법이 있는지 궁금합니다. falseyness은 멋진 일안전하게 JavaScript 하위 속성에 합체합니다.

function DoWork(){ 
    var foobar = 
     typeof foo !== "undefined" 
     ? typeof foo["bar"] !== "undefined" 
      ? foo["bar"] || null 
      : null 
     : null; 

    ... 
} 

console.log(JSON.stringify(foobar)); //output is either foo["bar"]'s value or null 

때문에

예를 들어, 내가 또는 이벤트 널 (null)에 정의되지 않을 수있는 개체의 속성 값으로 초기화 할 변수를 가장 잘되어 있습니다 보시다시피 이것은 지저분 해집니다. 이런 종류의 일을 처리하는 더 좋은 방법이 있다면 나는 궁금하다.

감사합니다.

답변

2

기본 제공 구문이 없습니다.

_.get(x, 'deep.path.property') 

x.deep.path.property의 값을 반환하거나 undefined, x을 포함하여 길을 따라 개체의경우가 존재하지 않습니다 lodash 같은 도서관은이 문제를 해결 깊은 얻을 방법을 가지고있다.

이러한 기능은 쓰기가 어렵지 않습니다. 생각대로 연습하고 원하는 인터페이스 (undefined 대신 null)를 사용하거나 lodash.get 구현을 조회 할 수 있습니다 (일부 가져 오기를 따라야 함).