小编use*_*246的帖子

在javascript中处理同一属性的多个赋值的最佳方法

情况就是这样:

user.username = body.username;
user.name = body.name;
user.surname = body.surname;
user.email = body.email;
user.password = body.password;
user.privilege = body.privilege;
user.pin = body.pin;
user.rfidTag = body.rfidTag;
Run Code Online (Sandbox Code Playgroud)

我这样修改它,它按预期工作:

for (let propt in body) { 
    user[propt] = body[propt];
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更优雅的方式来写这个,也许有一些属性检查.

[更新]:有多种方法可以解决这个问题.

如果您不需要保留用户属性:

user = Object.assign( {}, body );
Run Code Online (Sandbox Code Playgroud)

或者提案传播财产:

user = { ...body };
Run Code Online (Sandbox Code Playgroud)

否则保留用户的属性:

Object.assign( user, body );
Run Code Online (Sandbox Code Playgroud)

javascript node.js ecmascript-5 ecmascript-6 ecmascript-7

5
推荐指数
1
解决办法
219
查看次数