Скажем, например, у меня есть объект
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 }
]
};
Самый простой способ слияния с двумя объектами - это расширить базовый объект с помощью пользовательского объекта следующим образом
$.extend(true, base, user);
который изменит базовый объект на
{
"Name": "Dan",
"Height": null,
"Age": 27,
"Hobbies": null
};
Мой вопрос будет в том, как я могу получить метод расширения, чтобы не переопределять нулевые значения? Например, в этом случае, как я могу получить список хобби, если список хостов для пользователей равен нулю, поэтому я получаю следующее
{
"Name": "Dan",
"Height": null,
"Age": 27,
"Hobbies": [
{ "Name": "Tennis", "Location": null },
{ "Name": "Football", "Location": null },
{ "Name": "Rugby", "Location": null }
]
};