我有一个更新对象的功能:
_.each(user, function(value, key, obj) {
if (user[key] !== undefined) {
self.user[key] = user[key];
}
});
它让我更新这样的用户:
let user = new User();
user.verified = true;
self.sessionService.updateSession(user);
我只需要通过检查未定义来指定要更新的属性,这可以简化或写入更高效吗?
答案 0 :(得分:1)
你可以使用下划线做这样的事情:
_.assign(self.user, _.omit(user, _.isUndefined))
这可以通过创建一个对象来实现,其中使用omit和isUndefined谓词省略所有具有未定义值的键。
然后,此对象与assign一起使用以更新self.user
对象。
答案 1 :(得分:0)
我不确定这是否是您需要的答案,但如果变量未定义/ null /""您可以将变量设置为新值。像这样:
myVar = myVar || newValue;
如果定义了myVar,将保留旧值。如果没有,它将被分配给newValue。