使用 ES6 解构简化 javascript 对象创建

Simplify javascript object creation using ES6 destructuring

有没有一种方法可以使用解构来简化用户对象的更新,我有一个旧对象,我想更新到具有相同属性名称的新对象。

我想使用相同的用户对象并更新值而不是创建新对象。

function UpdateUserProps(user, updatedUser) {
    const { email, status } = updatedUser;
    user.email = email;
    user.status = status;
    return user;
}

您可以在对象中使用扩展语法 ...。这将创建一个新对象。

function UpdateUserProps(user, updatedUser) {
  return {...user, ...updatedUser}
}

您还可以使用参数解构从更新对象中获取特定属性。

function UpdateUserProps(user, {email, status}) {
  return {...user, ...{email, status}}
}

let user = {
  name: "foo",
  email: "foo",
  status: true
}

console.log(UpdateUserProps(user, {
  email: "bar",
  status: false
}))

您也可以使用 Object.assign

在不解构的情况下做到这一点
function updateUserProps(user, updatedUser) {
 return Object.assign({}, user, updatedUser);
}

如果要在同一个用户对象中更新

function updateUserProps(user, updatedUser) {
 return Object.assign(user, updatedUser);
}