网站搜索

javascript - 如何从对象中解构部分属性


例如,我得到了一个像这样的对象:

obj1 = {
     name: 'Bob',
     age:  20,
     career: 'teacher'
  }

现在我只需要复制它部分属性,而不是全部属性。

obj2 = {
     name: '',
     age: '',
  }

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

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

但是出错了。

答案#1

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

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

现在,obj2 包含所需的属性:

console.log(obj2);
// Prints {name: "Bob", age: 20}

如果你想将 obj2 的旧属性与新属性合并,你可以这样做:

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

答案#2

去掉 let(你不是在声明变量)并用括号括起来:

({name: obj2.name, age: obj2.age} = obj1);