use*_*246 5 javascript node.js ecmascript-5 ecmascript-6 ecmascript-7
情况就是这样:
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)
您可以使用Object.assign
user = Object.assign( {}, body );
Run Code Online (Sandbox Code Playgroud)
演示
var body = { user : "abc", username : "some-value" };
var user = Object.assign( {}, body );
console.log( user );Run Code Online (Sandbox Code Playgroud)
编辑
如果用户已经有一些你不想被删除的属性(不在体内)那么
Object.assign( user, body );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |