たとえば、私は次のオブジェクトを持っているとしましょう
var user = {
"Name": "Dan",
"Age": 27,
"Hobbies": null
};
これを次のベースオブジェクトにマージして、ユーザーオブジェクトに必要なすべてのプロパティを持たせたい
var base = {
"Name": null,
"Height": null,
"Age": null,
"Hobbies": [
{ "Name": "Tennis", "Location": null },
{ "Name": "Football", "Location": null },
{ "Name": "Rugby", "Location": null }
]
};
2つのオブジェクトにマージする最も簡単な方法は、次のようにベースオブジェクトをユーザーオブジェクトで拡張することです。
$.extend(true, base, user);
ベースオブジェクトを次のように変更します
{
"Name": "Dan",
"Height": null,
"Age": 27,
"Hobbies": null
};
私の質問は、null値をオーバーライドしないようにextendメソッドを取得するにはどうすればよいですか?たとえば、この場合、ユーザーの趣味リストがnullの場合でも、どうすれば趣味のリストを取得できるので、次のようになります。
{
"Name": "Dan",
"Height": null,
"Age": 27,
"Hobbies": [
{ "Name": "Tennis", "Location": null },
{ "Name": "Football", "Location": null },
{ "Name": "Rugby", "Location": null }
]
};