2017-08-27 8 views
0

を使用して:更新javascriptオブジェクト私はオブジェクトを更新する機能を持っている非未定義のプロパティ

_.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

既に値がある場合は、*値*を使用することができます。 –

答えて

0

私は、これはあなたが必要な答えであるかどうかわからないんだけど、それは/ nullを/未定義だ場合は、このように「」新しい値に変数を設定することができます、myVarをが定義されている場合

myVar = myVar || newValue; 

古い値が保持されます。そうでない場合は、newValueに割り当てられます。

+0

いいえ、それは当てはまりません。 myVar = 0およびnewValue = 27も更新されます。式== falseは式と同じではありません=== undefined –

1

あなたはこのようなものアンダースコアを使用して行うことができます。これは、未定義の値を持つすべてのキーがomitisUndefined述語を使用して省略されているオブジェクトを作成することによって動作します

_.assign(self.user, _.omit(user, _.isUndefined)) 

を。

このオブジェクトはself.userオブジェクトを更新するためにassignと共に使用されます。

関連する問題