从 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中文网其他相关文章!