es6 解构后如何重新赋值?

const source = {name:1,gender:'male',height:178,weight:60,address:'北京','work':'IT'},
const { name, gender, height, weight } = source;
const data = {name, gender, height, weight};

如上我想从 source 数据中获取一个新的 data,包括name, gender, height, weight字段.
有没有快捷的方法 直接在第二行source 解构取出来的值 赋值给 data

const data = { name, gender, height, weight } = source;//类似的猜想....
阅读 3.4k
3 个回答

let _data = JSON.parse(JSON.stringify(source, ['name', 'gender', 'height', 'weight']))

目前 ES 还没有 那样快捷 的解构写法去选择一些属性构成新对象。相干提案 pick notation 还未进入 TC39 提案表里。利用解构的 rest 语法倒可以过滤一些属性构成新对象,比如在你的例子中可以像这样

const { address, work, ...data } = source;

解构赋值没有,但 lodash.pick 函数, 可以达到你的目的

const data = _.pick(source, ['name', 'gender', 'height', 'weight'])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题