>웹 프론트엔드 >JS 튜토리얼 >ES6의 객체에서 특정 속성을 효율적으로 추출하는 방법은 무엇입니까?

ES6의 객체에서 특정 속성을 효율적으로 추출하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-21 18:29:10140검색

How to Efficiently Extract Specific Properties from an Object in ES6?

ES6의 객체에서 일부 속성을 가져오는 한 줄짜리

문제:

목표는 간결한 객체를 만드는 것입니다. 객체에서 특정 속성을 추출하는 ES6의 함수입니다. 구조 분해 및 단순화된 객체 리터럴과 관련된 솔루션이 제시되었지만 필드 목록의 반복과 관련된 우려가 있습니다.

답변:

더 슬림한 솔루션을 얻으려면 매개변수 사용을 고려하세요. 명시적 매개변수의 필요성을 없애기 위한 구조 분해:

({id, title}) => ({id, title})

매개 변수 구조 분해가 편리하기는 하지만 여전히 필요합니다. 속성 목록을 반복합니다. 보다 일반적인 솔루션을 사용하려면 다음을 사용하세요.

function pick(o, ...props) {
    return Object.assign({}, ...props.map(prop => ({[prop]: o[prop]})));
}

이 솔루션은 Object.ass를 활용하여 지정된 속성(props)을 유지하면서 객체를 병합합니다.

속성 속성에 대한 추가 고려 사항 :

원래 속성의 속성(예: 구성 가능성 및 getters/setters), 열거할 수 없는 속성을 제외하려면 다음을 고려하세요.

function pick(o, ...props) {
    var has = p => o.propertyIsEnumerable(p),
        get = p => Object.getOwnPropertyDescriptor(o, p);

    return Object.defineProperties({},
        Object.assign({}, ...props
            .filter(prop => has(prop))
            .map(prop => ({prop: get(props)})))
    );
}

위 내용은 ES6의 객체에서 특정 속성을 효율적으로 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.