ES6 中从对象中获取特定属性的单行
问:如何从 ES6 中的对象中仅提取某些属性使用 ES6 的简洁方式?
A:这里有一些方法:
最紧凑的方法:
使用参数解构来避免使用参数变量:
({id, title}) => ({id, title})
通用方法:
该方法使用 Object.assign 和计算属性来实现更多一般解决方案:
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中如何有选择地提取对象属性?的详细内容。更多信息请关注PHP中文网其他相关文章!