有没有一种方法可以通过使用结构分解来简化用户对象的更新,因为我有一个旧对象,并且想要更新为具有相同名称的新对象。
我想使用相同的用户对象并更新值,而不是创建新对象。
function UpdateUserProps(user, updatedUser) {
const { email, status } = updatedUser;
user.email = email;
user.status = status;
return user;
}
答案 0 :(得分:4)
您可以在对象中使用扩展语法...
。这将创建一个新对象。
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
}))
答案 1 :(得分:2)
使用Object.assign
function updateUserProps(user, updatedUser) {
return Object.assign({}, user, updatedUser);
}
如果要在同一用户对象中更新
function updateUserProps(user, updatedUser) {
return Object.assign(user, updatedUser);
}