從ES6 中的物件取得屬性的單行
許多開發人員都在尋找一種簡潔的方法來從ES6 中的物件中提取特定屬性。一種常見的解決方案採用解構和簡化的物件文字,儘管重複程式碼中的欄位清單可能很麻煩。
改進的解決方案
一種更簡化的方法涉及「參數解構,」這消除了明確的需要參數:
({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中文網其他相關文章!