문제:
목표는 간결한 객체를 만드는 것입니다. 객체에서 특정 속성을 추출하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!