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

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

Linda Hamilton
發布: 2024-12-21 18:29:10
原創
139 人瀏覽過

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.assign 來合併對象,同時保留指定的屬性 (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中文網其他相關文章!

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