>웹 프론트엔드 >JS 튜토리얼 >ES6의 객체에서 특정 속성을 효율적으로 추출하려면 어떻게 해야 합니까?

ES6의 객체에서 특정 속성을 효율적으로 추출하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-24 17:32:14197검색

How Can I Efficiently Extract Specific Properties from an Object in ES6?

ES6의 객체에서 속성을 가져오는 단일 라이너

많은 개발자가 ES6의 객체에서 특정 속성을 추출하는 간결한 방법을 모색해 왔습니다. 일반적인 솔루션 중 하나는 구조 분해 및 단순화된 객체 리터럴을 사용하지만 코드에서 필드 목록을 반복하는 것은 번거로울 수 있습니다.

향상된 솔루션

보다 간소화된 접근 방식에는 "매개 변수"가 포함됩니다. Destructuring"을 사용하면 명시적인 구문이 필요하지 않습니다. 매개변수:

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

일반화된 솔루션

더 큰 유연성을 위해 객체와 임의 개수의 속성을 인수로 허용하는 "pick" 기능을 고려하세요.

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

재산 보존 속성

열거 불가능한 속성을 제외하면서 구성 가능성 및 getter/setter와 같은 속성 속성을 유지하려면:

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에서는 다양한 사용 사례를 충족합니다.

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

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