如何在忽略空值的同时扩展对象?
比方说,我有一个对象
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 };
我的问题是如何让extend方法不覆盖空值? 例如,在这个例子中,如果用户爱好列表为空,我怎么还能获得爱好列表所以我最终得到以下内容
{ "Name": "Dan", "Height": null, "Age": 27, "Hobbies": [ { "Name": "Tennis", "Location": null }, { "Name": "Football", "Location": null }, { "Name": "Rugby", "Location": null } ] };
您可以使用undefined
作为jQuery.extend
将忽略的值。
var user = { "Name": "Dan", "Age:" 27, "Hobbies": undefined }; $.extend(true, base, user);