首页 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板