我认为这一定是一个常见问题,但似乎无法找到解决方案。使用 JSON 配置文件来扩展包含对象和数组的 jQuery 对象。
对于对象和简单属性,我想覆盖(extend
很好)。
对于数组,可能存在也可能不存在现有项目。
目前一个数组只是覆盖了第一个元素
var sourceObj = {propterty:"change Me",anArray:[{name:"first"},{name:"second"}]},
configJSON = '{"propterty":"New Val","anArray":[{"name":"third"}]}',
configObj = JSON.parse(configJSON);
$.extend(true,sourceObj,configObj);
这将返回:
{propterty:"New Val" , anArray:[{name:"third"},{name:"second"}}
我可以得到:
{propterty:"New Val",anArray:[{name:"first"},{name:"second"},{name:"third"}]}
同时还允许更新“第一”和“第二”对象?
"anArray":[{"name":"second","newProp":"add newProp to second"}]
是否可以/应该extend
修改以比较数组项并根据某些规则或设置属性值(例如“名称”)扩展或添加?
感谢您的任何建议或指示。