Comment étendre un objet tout en ignorant les valeurs nulles?

Par exemple, j'ai un objet de

var user = { "Name": "Dan", "Age": 27, "Hobbies": null }; 

Que je voudrais fusionner sur l'objet de base suivant afin que mon objet utilisateur ait toutes les propriétés requises

 var base = { "Name": null, "Height": null, "Age": null, "Hobbies": [ { "Name": "Tennis", "Location": null }, { "Name": "Football", "Location": null }, { "Name": "Rugby", "Location": null } ] }; 

La manière la plus simple de fusionner avec les deux objets serait d'étendre l'objet de base avec l'objet utilisateur comme suit

 $.extend(true, base, user); 

Qui modifierait l'objet de base pour être

 { "Name": "Dan", "Height": null, "Age": 27, "Hobbies": null }; 

Ma question serait de savoir comment puis-je obtenir la méthode d'extension pour ne pas annuler les valeurs nulles? Par exemple, dans ce cas, comment puis-je encore obtenir une liste de passe-temps si la liste de loisirs des utilisateurs est nulle, donc je finis par ce qui suit

 { "Name": "Dan", "Height": null, "Age": 27, "Hobbies": [ { "Name": "Tennis", "Location": null }, { "Name": "Football", "Location": null }, { "Name": "Rugby", "Location": null } ] }; 

Vous pouvez utiliser undefined comme valeur qui sera ignorée par jQuery.extend .

 var user = { "Name": "Dan", "Age:" 27, "Hobbies": undefined }; $.extend(true, base, user);