如何从对象中破坏部分属性

xia*_*Luo 6 javascript ecmascript-6

例如,我有一个像这样的对象:

obj1 = {
     name: 'Bob',
     age:  20,
     career: 'teacher'
  }
Run Code Online (Sandbox Code Playgroud)

现在我需要复制其部分属性而不是所有属性.

obj2 = {
     name: '',
     age: '',
  }
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做obj2.name = obj1.name,如果需要复制许多属性,这将是冗长的.还有其他快速方法可以解决这个问题吗?我试过了

let {name: obj2.name, age: obj2.age} = obj1;

但是得到了错误.

Jon*_*han 5

实际上你不需要对象解构,只需要简单的赋值:

obj2 = { name: obj1.name, age: obj1.age }
Run Code Online (Sandbox Code Playgroud)

现在,obj2持有想要的属性:

console.log(obj2);
// Prints {name: "Bob", age: 20}
Run Code Online (Sandbox Code Playgroud)

如果要将旧属性obj2与新属性合并,可以执行以下操作:

obj2 = { ...obj2, name: obj1.name, age: obj1.age }
Run Code Online (Sandbox Code Playgroud)