请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

es6中有没有原生的比较好的办法处理对象复制另一个对象中的部分对象

比如 如何解决

obj1.a=obj2.a

obj1.b=obj2.b

这种。现在看到的办法是依靠loadsh的pick函数,或者使用多次解析。

let {a,b}=obj2

Object.assgin(obj1,{a,b})

但是感觉都很麻烦,有什么比较好的原生的解决办法吗


正在回答 回答被采纳积分+3

1回答

Zh_Jane 2018-08-07 10:09:32

可以考虑一下使用展开语法做对象属性拷贝

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Spread_syntax#%E8%AF%AD%E6%B3%95

0 回复 有任何疑惑可以回复我~
  • 提问者 李行知 #1
    能给一个例子吗?使用展开的时候没有办法控制展开项啊。。。
    比如 obj1={a,b,c} obj2={a,b,c,d}
    如果使用展开最后会导致obj1里面也有d这个属性
    回复 有任何疑惑可以回复我~ 2018-08-07 11:18:17
  • Zh_Jane 回复 提问者 李行知 #2
    let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
    
    console.log(x); // 1
    console.log(y); // 2
    console.log(z); // { a: 3, b: 4 }
    回复 有任何疑惑可以回复我~ 2018-08-07 15:59:22
  • Zh_Jane 回复 提问者 李行知 #3
    这里过滤x和y,使用剩余参数将a和b打包为一个新的对象。这种做法看看能不能符合你的需求?
    回复 有任何疑惑可以回复我~ 2018-08-07 16:03:08
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信