首頁 > web前端 > js教程 > ES6中如何有效率地提取物件的特定屬性?

ES6中如何有效率地提取物件的特定屬性?

Barbara Streisand
發布: 2024-12-24 17:32:14
原創
183 人瀏覽過

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

從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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板